function GetLinkedAnnotationChain(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship; MaxDepth: Integer = 64): TPdfIntegerArray;
| AnnotIndex | Integer. Nullbasert indeks for startmerknaden på gjeldende side, i området 0 .. AnnotationCount - 1 |
| Relationship | TPdfAnnotationRelationship. parPopup følger /Popup-oppføringene; parInReplyTo følger /IRT-svaroppføringene |
| MaxDepth | Integer. Maksimalt antall lenker som følges. Må være mellom 1 og 4096, ellers utløses en EPdfError. Standardverdien er 64 |
| Result | TPdfIntegerArray. Sideindeksene til de lenkede merknadene i besøksrekkefølge. Tomt når startmerknaden ikke har en slik lenke |
Anvender GetLinkedAnnotationIndex gjentatte ganger: fra startmerknaden følger den det etterspurte forholdet til neste merknad, deretter igjen fra den, og samler opp hver indeks på veien. Resultatet er svartråden i en diskusjon, eller en popup-kjede, som en vanlig array med merknadsindekser på siden
Gjennomgangen stopper på tre betingelser: gjeldende merknad har ingen flere lenker, antallet besøkte lenker når MaxDepth, eller neste indeks ville besøke en merknad som allerede er sett (startindeksen regnes som sett). Syklusvakten gjør kallet trygt på feilformede dokumenter der /IRT-oppføringene går i løkke
Startindeksen selv er aldri en del av resultatet — bare merknadene den fører til. En merknad uten den etterspurte lenken gir en tom array, ikke en feil
MaxDepth utenfor 1 .. 4096 utløser en EPdfError før noen merknad åpnes
var
Chain: TPdfIntegerArray;
Index: Integer;
begin
// collect the whole reply thread under annotation 5
Chain := Pdf1.GetLinkedAnnotationChain(5, parInReplyTo);
for Index in Chain do
Memo1.Lines.Add(Pdf1.Annotation[Index].ContentsText);
end;