True teruggeeft wanneer een form field widget de opgegeven paginacoördinaat bedektproperty HasFormFieldAt[X, Y: Single]: Boolean; // read only
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
TPdfView.DeviceToPage of pas zelf de inverse Zoom- / scroll-offset toe voordat je deze property aanroeptHasFormFieldAt rapporteert alleen ja of nee — gebruik FormFieldInfoAt wanneer je wilt weten welk field is geraakt
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;