PDFium Component Docs

HasFormFieldAt Eigenschaft

Dieser API-Eintrag behält Bezeichner, Signaturen, Codeblöcke und PDF-Begriffe in ihrer Originalform.
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; // nur lesbar

Beschreibung

HasFormFieldAt führt auf der aktuell aktiven Seite einen Hit-Test durch: Es gibt True zurück, wenn die angegebene (X, Y)-Koordinate in einem beliebigen Widget-Annotation-Rechteck liegt Die Koordinaten liegen im PDF-Benutzerraum — demselben Koordinatensystem wie PageWidth / PageHeight, mit dem Ursprung links unten, X nach rechts wachsend, Y nach oben wachsend, Einheiten in Punkten (1/72 Zoll)

Die Eigenschaft gibt False zurück, wenn Active False ist, wenn das Dokument keine AcroForm-Widgets hat oder wenn die übergebene Koordinate kein Widget-Rechteck trifft Sie ist ein Wrapper mit konstanter Laufzeit um PDFiums FPDFPage_HasFormFieldAtPoint — ideal für Mausbewegungs- / Hover-Rückmeldungen in einem Viewer, in dem der Wert viele Male pro Sekunde abgefragt wird

Der Hit-Test beachtet nur das Widget-Rechteck — nicht die Grenzen der Darstellung Schaltflächen oder Kontrollkästchen, deren sichtbares Glyph kleiner als das Widget-Rechteck ist, melden trotzdem True für das ganze Rechteck Kombinieren Sie es mit FormFieldInfoAt[X, Y], um den Datensatz des passenden Felds zu erhalten, sobald der Hit-Test bestätigt, dass der Cursor über einem Feld liegt; dieses Muster vermeidet das schwerere Abrufen der Infos bei jedem Mausbewegungsereignis

Hinweise

Beispiel

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;

Siehe auch

FormFieldAt, FormFieldInfoAt, FormFieldCount, TPdfView.DeviceToPage