PDFium Component Docs

FormFieldInfoAt eigenschap

Component: TPdf  ·  Unit: PDFium
Formulierveldrecord voor de widget op de opgegeven paginacoördinaat

Syntax

property FormFieldInfoAt[X, Y: Single]: TPdfFormFieldInfo; // read only

Description

FormFieldInfoAt voert een hit-test uit op de momenteel actieve pagina en retourneert het TPdfFormFieldInfo-record dat de widgetannotatie op (X, Y) beschrijft. Coördinaten zijn in PDF-gebruikersruimte, met de oorsprong in de linkerbenedenhoek van de pagina en eenheden uitgedrukt in punten (1/72 inch). Het record weerspiegelt wat FormFieldInfo[Index] retourneert — veldtype (fiTextField, fiCheckBox, …), veldnaam, alternatieve naam, vlaggen, optielabels, aangevinkte status, exportwaarde en lettertypegrootte.

Wanneer het coördinaat niet binnen een widgetrechthoek valt, retourneert FormFieldInfoAt een standaard geïnitialiseerd TPdfFormFieldInfo — FieldType = fiUnknown en lege strings door heel het record. Gebruik HasFormFieldAt[X, Y] voor een goedkope ja/nee-test voordat u het volledige record ophaalt, of controleer simpelweg de geretourneerde FieldType.

De opzoeking is O(n) over de widgets van de pagina en decodeert bovendien Unicode-veldmetagegevens, dus is zwaarder dan HasFormFieldAt. In een muis-beweeg-handler controleert u eerst HasFormFieldAt; roep FormFieldInfoAt alleen aan bij klikken of bij hover-enter. Coördinaten vanuit een muispositie gaan eerst door TPdfView.PointToPage om apparaatpixels naar pagina-eenheden te vertalen.

Remarks

Example

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;

See Also

HasFormFieldAt, FormFieldInfo, FormFieldAt, FormFieldCount