PDFium Delphi Component Docs

FormFieldInfoAt Proprietà

Componente: TPdf  ·  Unità: PDFium
Record del campo modulo per il widget situato alla coordinata di pagina data

Syntax

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

Description

FormFieldInfoAt esegue un hit-test sulla pagina attualmente attiva e restituisce il record TPdfFormFieldInfo che descrive l'annotazione widget a (X, Y). Le coordinate sono in user space PDF, con l'origine nell'angolo in basso a sinistra della pagina e unità espresse in punti (1/72 di pollice). Il record rispecchia ciò che restituisce FormFieldInfo[Index] — tipo di campo (fiTextField, fiCheckBox, …), nome del campo, nome alternativo, flag, etichette delle opzioni, stato di selezione, valore di export e dimensione font

Quando la coordinata non cade dentro nessun rettangolo widget, FormFieldInfoAt restituisce un TPdfFormFieldInfo inizializzato di default — FieldType = fiUnknown e stringhe vuote ovunque. Usa HasFormFieldAt[X, Y] come sonda sì/no economica prima di recuperare il record completo, oppure verifica semplicemente il FieldType restituito

La ricerca è O(n) sui widget della pagina e in più decodifica i metadati Unicode del campo, quindi è più pesante di HasFormFieldAt. In un gestore di mouse-move verifica prima HasFormFieldAt; chiama FormFieldInfoAt solo al click o all'hover-enter. Le coordinate di una posizione del mouse passano prima da TPdfView.PointToPage per tradurre i pixel device in unità pagina

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