property FormFieldInfoAt[X, Y: Single]: TPdfFormFieldInfo; // read only
FormFieldInfoAt suorittaa osumatestauksen tällä hetkellä aktiivisella sivulla ja palauttaa
TPdfFormFieldInfo-tietueen, joka kuvaa pisteen (X, Y) kohdalla
olevaa widgettimerkintää. Koordinaatit ovat PDF-käyttäjäavaruudessa, origo sivun
vasemmassa alakulmassa ja yksikköinä pisteet (1/72 tuumaa). Tietue
peilaa sitä, mitä FormFieldInfo[Index] palauttaa — kenttätyyppi
(fiTextField, fiCheckBox, …), kentän nimi, vaihtoehtoinen
nimi, liput, vaihtoehtojen nimikkeet, valittu tila, vientiarvo ja fonttikoko
Kun koordinaatti ei osu minkään widget-suorakulman sisälle, FormFieldInfoAt
palauttaa oletusalustetun TPdfFormFieldInfo-tietueen —
FieldType = fiUnknown ja tyhjät merkkijonot kaikkialla. Käytä
jäsentä HasFormFieldAt[X, Y] halvan kyllä/ei-tutkinnan tekemiseen ennen koko
tietueen noutamista, tai tarkista yksinkertaisesti palautettu FieldType-arvo
Haku on O(n) sivun widgetien yli ja dekoodaa lisäksi Unicode-kenttien metatiedot,
joten se on raskaampi kuin HasFormFieldAt. Hiiren liikkeen käsittelijässä
tarkista ensin HasFormFieldAt; kutsu FormFieldInfoAt vasta napsautuksessa
tai leijunnan alussa. Hiirikohdasta saadut koordinaatit ajetaan ensin
jäsenen TPdfView.PointToPage kautta kääntämään laitepikselit sivuyksiköiksi
/Annots:n viimeinen tietue voittaa)FieldType = fiSignature — yhdistä jäseneen
SignatureCount luetteloidaksesi allekirjoitustilan erikseenFormFieldAt kautta mitätöi välimuistissa olevat
tietueet; lue uudelleen jokaisen kirjoituksen jälkeen
procedure TForm1.PdfView1Click(Sender: TObject);
var Info: TPdfFormFieldInfo;
PageX, PageY: Double;
begin
PdfView1.PointToPage(Mouse.CursorPos.X, Mouse.CursorPos.Y, PageX, PageY);
Info := Pdf1.FormFieldInfoAt[PageX, PageY];
if Info.FieldType <> fiUnknown then
ShowMessage(Info.Name);
end;