PDFium Delphi Component Docs

HasFormFieldAt Eigenschaft

Komponente: TPdf  ·  Unit: PDFium
Hit-Test, der True zurückgibt, wenn ein Formularfeld-Widget die angegebene Seitenkoordinate überdeckt

Syntax

property HasFormFieldAt[X, Y: Single]: Boolean; // read only

Description

HasFormFieldAt führt einen Hit-Test auf der aktuell aktiven Seite aus: Die Eigenschaft liefert True, wenn die gegebene (X, Y)-Koordinate in einem Widget-Annotationsrechteck liegt. Koordinaten liegen im PDF-Benutzerraum — dasselbe Koordinaten- system wie PageWidth / PageHeight, mit dem Ursprung unten links, X nach rechts wachsend, Y nach oben wachsend, Einheit Punkte (1/72 inch)

Die Eigenschaft liefert False, wenn Active False ist, wenn das Dokument keine AcroForm-Widgets hat oder wenn die übergebene Koordinate an allen Widget-Rechtecken vorbeigeht. Sie ist ein Constant-Time-Wrapper um PDFiums FPDFPage_HasFormFieldAtPoint — ideal für Mouse-Move-/Hover- Feedback in einem Viewer, in dem der Wert mehrmals pro Sekunde abgefragt wird

Der Hit-Test berücksichtigt nur das Widget-Rechteck — nicht die Appearance-Grenzen. Push- buttons oder Checkboxen, deren sichtbare Glyphe kleiner als das Widget-Rechteck ist, melden für das ganze Rechteck trotzdem True. Zusammen mit FormFieldInfoAt[X, Y] den Record des getroffenen Felds holen, sobald der Hit-Test bestätigt, dass der Cursor über einem Feld steht; dieses Muster vermeidet den teureren Info-Abruf bei jedem Mouse-Move-Event

Remarks

Example

procedure TForm1.PdfView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var PageX, PageY: Double;
begin
  PdfView1.DeviceToPage(X, Y, PageX, PageY);
  if Pdf1.HasFormFieldAt[PageX, PageY] then
    PdfView1.Cursor := crHandPoint
  else
    PdfView1.Cursor := crDefault;
end;

See Also

FormFieldAt, FormFieldInfoAt, FormFieldCount, TPdfView.DeviceToPage