property HasFormFieldAt[X, Y: Single]: Boolean; // read only
HasFormFieldAt, hâlihazırda etkin sayfada bir hit-test yapar: verilen
(X, Y) koordinatı herhangi bir
widget annotation dikdörtgeninin içindeyse True döndürür. Koordinatlar PDF user space'tedir — PageWidth / PageHeight ile aynı koordinat
sistemi; başlangıç noktası
sol altta, X sağa, Y yukarı doğru artar, birim point'tir
(1/72 inch)
Property, Active False olduğunda,
dokümanda AcroForm widget'ı yokken veya verilen koordinat
hiçbir widget dikdörtgenine denk gelmezken False döndürür. PDFium’un
FPDFPage_HasFormFieldAtPoint çağrısını saran sabit-zamanlı bir sarmalayıcıdır — değerin saniyede birçok kez sorgulandığı bir görüntüleyicide mouse-move / hover
geri bildirimi için idealdir
Hit-test yalnızca widget dikdörtgenini dikkate alır — appearance sınırlarını değil. Görünür glifi widget dikdörtgeninden küçük olan
push button veya checkbox'lar, dikdörtgenin tamamı için True bildirir. Hit-test
imlecin bir alanın üzerinde olduğunu doğruladıktan sonra eşleşen alanın kaydını almak için
FormFieldInfoAt[X, Y] ile eşleştirin; bu desen, her mouse-move event'inde daha ağır
bilgi alımını önler
TPdfView.DeviceToPage üzerinden çevirin veya ters Zoom / kaydırma konumunu
kendiniz uygulayınFormFieldInfoAt kullanın
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;