function GetLinkedAnnotationChain(AnnotIndex: Integer; Relationship: TPdfAnnotationRelationship; MaxDepth: Integer = 64): TPdfIntegerArray;
| AnnotIndex | Integer. Nulinės pradžios pradinės anotacijos indeksas dabartiniame puslapyje, diapazone 0 .. AnnotationCount - 1 |
| Relationship | TPdfAnnotationRelationship. parPopup seka /Popup įrašus; parInReplyTo seka /IRT atsakymų įrašus |
| MaxDepth | Integer. Didžiausias sekamų saitų skaičius. Turi būti nuo 1 iki 4096, priešingu atveju iškeliamas EPdfError. Numatytoji reikšmė 64 |
| Result | TPdfIntegerArray. Susietų anotacijų puslapio indeksai apėjimo tvarka. Tuščias, kai pradinė anotacija tokio saito neturi |
Pakartotinai taiko GetLinkedAnnotationIndex: nuo pradinės anotacijos seka pageidaujamu ryšiu iki kitos anotacijos, tada vėl nuo tos, sugaudamas kiekvieną pakeliui esantį indeksą. Rezultatas yra diskusijos atsakymų gija arba iššokančiųjų langų grandinė, pateikti kaip paprastas puslapio anotacijų indeksų masyvas
Apėjimas sustoja trimis sąlygomis: dabartinė anotacija daugiau neturi saito, aplankytų saitų skaičius pasiekia MaxDepth arba kitas indeksas pakartotinai rodytų jau matytą anotaciją (pradinis indeksas laikomas matytu). Ciklo apsauga daro kreipinį saugiu sugadintuose dokumentuose, kurių /IRT įrašai sudaro kilpas
Pats pradinis indeksas niekada nebūna rezultato dalis — tik anotacijos, į kurias jis veda. Anotacija be pageidaujamo saito duoda tuščią masyvą, o ne klaidą
MaxDepth už 1 .. 4096 ribų iškelia EPdfError dar prieš atveriant bet kurią anotaciją
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;