function FormFieldZOrderAt(X, Y: Integer): Integer;
| X, Y | Integer. Pikselkoordinater relativt til visningskontrollen, de samme koordinatene musehendelsene mottar |
Trefftester en skjermpiksel mot AcroForm-widget-annotasjonene på den gjeldende siden og rapporterer stabelposisjonen til den øverste. Visningen konverterer først (X, Y) til sideområde-koordinater med DeviceToPage, som tar hensyn til Zoom, Rotation, visningsmodus, sidemarg og rulleforskyvning, og kaller deretter PDFiums FPDFPage_FormFieldZOrderAtPoint med sidens skjemahåndtak
En større returverdi betyr at widgeten er stablet nærmere betrakteren, det vil si tegnet oppå felt med mindre verdier. Z-rekkefølge her er den øverste trefftestrekkefølgen i annotasjonsstabelen, ikke en widgetindeks, så behandle verdiene som ugjennomsiktige sammenligningstall
Der en skjemawidget og en lenkeannotasjon overlapper, sammenlign dette resultatet med LinkZOrderAt: begge verdiene kommer fra samme annotasjonsstabelrekkefølge, og den høyere identifiserer annotasjonen PDFium anser truffet ved den pikselen
TPdf-motparten TPdf.FormFieldZOrderAtPoint(X, Y: Double) pakker inn samme PDFium-funksjon. Den tar sideområde-koordinater i Double direkte og utløser et unntak når ingen side er aktiv eller skjemamiljøet ikke er initialisert, mens TPdfView-wrapperen feiler mykt og returnerer -1
procedure TForm1.PdfView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
FieldZ, LinkZ: Integer;
begin
FieldZ := PdfView1.FormFieldZOrderAt(X, Y);
LinkZ := PdfView1.LinkZOrderAt(X, Y);
if (FieldZ >= 0) and (FieldZ > LinkZ) then
Caption := 'form field wins the hit';
end;