property HasFormFieldAt[X, Y: Single]: Boolean; // read only
HasFormFieldAt utför en träfftest på den aktuella aktiva sidan: den returnerar
True när den givna koordinaten (X, Y) faller inuti någon
widgetannoteringsrektangel. Koordinaterna anges i PDF användarutrymme — samma koordinatsystem
som PageWidth / PageHeight, med origo nere till
vänster, X ökande åt höger, Y ökande uppåt, enheten punkter
(1/72 tum)
Egenskapen returnerar False när Active är False,
när dokumentet saknar AcroForm-widgetar eller när den angivna koordinaten missar
alla widgetrektanglar. Den är en omslutning med konstant körtid kring PDFiums
FPDFPage_HasFormFieldAtPoint — idealisk för återkoppling vid musrörelser och
hovring i ett visningsprogram där värdet efterfrågas många gånger per sekund
Träfftesten beaktar endast widgetrektangeln — inte utseendegränserna. Tryckknappar
eller kryssrutor vars synliga glyf är mindre än widgetrektangeln rapporterar fortfarande
True för hela rektangeln. Para ihop med
FormFieldInfoAt[X, Y] för att hämta det matchade fältets post när
träfftesten har bekräftat att pekaren är över ett fält; det mönstret undviker den tyngre
informationshämtningen vid varje musrörelsehändelse
TPdfView.DeviceToPage eller tillämpa den omvända Zoom- / rullningsförskjutningen
själv innan egenskapen anropasFormFieldInfoAt när
du behöver veta vilket fält som träffades
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;