property HasFormFieldAt[X, Y: Single]: Boolean; // read only
HasFormFieldAt izvodi test pogotka na trenutačno aktivnoj stranici: vraća
True kada zadana koordinata (X, Y) pada unutar pravokutnika
bilo koje widget anotacije. Koordinate su u PDF korisničkom prostoru — isti
koordinatni sustav kao PageWidth / PageHeight, s ishodištem u
donjem lijevom kutu, X raste prema desno, Y prema gore, jedinice u točkama
(1/72 inča)
Svojstvo vraća False kada je Active False,
kada dokument nema AcroForm widgete ili kada zadana koordinata promaši svaki
pravokutnik widgeta. Riječ je o omotaču konstantnog vremena oko PDFium
FPDFPage_HasFormFieldAtPoint — idealan za mouse-move / hover
povratnu informaciju u prikazniku gdje se vrijednost dohvaća mnogo puta u sekundi
Test pogotka poštuje samo pravokutnik widgeta — ne granice appearancea. Push
gumbi ili checkboxi čiji je vidljivi glif manji od pravokutnika widgeta i dalje
prijavljuju True za cijeli pravokutnik. Kombinirajte s
FormFieldInfoAt[X, Y] za dohvat zapisa pogodenog polja nakon što test
pogotka potvrdi da je kursor iznad polja; taj uzorak izbjegava teži dohvat
informacija na svakom mouse-move događaju
TPdfView.DeviceToPage ili sami primijenite obrnuti Zoom / pomak
klizača prije poziva ovog svojstvaFormFieldInfoAt
kada trebate znati koje je polje pogođeno
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;