PDFium Component Docs

HasFormFieldAt Eigenschap

Deze API-entry behoudt identifiers, signatures, codeblokken en PDF-termen in hun oorspronkelijke vorm.
Component: TPdf  ·  Unit: PDFium
Hit-test die True teruggeeft wanneer een form field widget de opgegeven paginacoördinaat bedekt

Syntaxis

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

Beschrijving

HasFormFieldAt voert een hit-test uit op de momenteel actieve pagina: het geeft True terug wanneer de gegeven (X, Y)-coördinaat binnen een widget annotation rectangle valt. Coördinaten staan in PDF user space — hetzelfde coördinatensysteem als PageWidth / PageHeight, met de oorsprong linksonder, X naar rechts, Y omhoog, en eenheden in punten (1/72 inch)

De property geeft False terug wanneer Active False is, wanneer het document geen AcroForm widgets heeft of wanneer de opgegeven coördinaat geen enkele widget rectangle raakt. Het is een constant-time wrapper rond PDFium’s FPDFPage_HasFormFieldAtPoint — ideaal voor mouse-move / hover feedback in een viewer waarin de waarde vele keren per seconde wordt opgevraagd

De hit-test respecteert alleen de widget rectangle, niet de appearance bounds. Push buttons of check boxes waarvan de zichtbare glyph kleiner is dan de widget rect geven nog steeds True voor de hele rect terug. Combineer met FormFieldInfoAt[X, Y] om het record van het gematchte field op te halen zodra de hit-test bevestigt dat de cursor boven een field staat; dat patroon voorkomt de zwaardere info-opvraging bij elke mouse-move event

Opmerkingen

Voorbeeld

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;

Zie ook

FormFieldAt, FormFieldInfoAt, FormFieldCount, TPdfView.DeviceToPage