property FormFieldInfoAt[X, Y: Single]: TPdfFormFieldInfo; // read only
FormFieldInfoAt vykoná hit-test na aktuálne aktívnej strane a vráti
záznam TPdfFormFieldInfo popisujúci anotáciu ovládacieho prvku na
(X, Y). Súradnice sú v používateľskom priestore PDF, s počiatkom v
ľavom dolnom rohu strany a jednotkami vyjadrenými v bodoch (1/72 palca). Záznam
zrkadlí to, čo vracia FormFieldInfo[Index] — typ poľa
(fiTextField, fiCheckBox, …), názov poľa, alternatívny
názov, príznaky, štítky volieb, stav zaškrtnutia, hodnota exportu a veľkosť písma.
Keď súradnica nespadne dovnútra žiadneho obdĺžnika ovládacieho prvku, FormFieldInfoAt
vráti predvolene inicializovaný TPdfFormFieldInfo —
FieldType = fiUnknown a prázdne reťazce všade. Pre lacnú áno/nie sondu pred získaním úplného
záznamu použite HasFormFieldAt[X, Y] alebo jednoducho skontrolujte vrátené FieldType.
Vyhľadávanie je O(n) nad ovládacími prvkami strany a dodatočne dekóduje
metadáta poľa Unicode, takže je ťažšie než HasFormFieldAt. V
obsluhe pohybu myšou najprv skontrolujte HasFormFieldAt; FormFieldInfoAt volajte
iba pri kliknutí alebo vstupe hover. Súradnice z pozície myši prejdú najprv cez
TPdfView.PointToPage na preklad pixelov zariadenia do jednotiek strany.
/Annots).FieldType = fiSignature — skombinujte s
SignatureCount na samostatné vymenovanie stavu podpisovania.FormFieldAt zneplatňuje záznamy vo vyrovnávacej pamäti;
po každom zápise ich znovu prečítajte.
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;