function FormFieldZOrderAt(X, Y: Integer): Integer;
| X, Y | Integer. Pikselių koordinatės, susietos su peržiūros valdikliu, tos pačios koordinatės, kurias gauna pelės įvykiai |
Smūgio tikrina ekrano pikselį pagal dabartinio puslapio AcroForm valdiklių anotacijas ir praneša aukščiausiosios iš jų dėstymo vietą. Peržiūros programa pirmiausia (X, Y) paverčia puslapio erdvės koordinatėmis su DeviceToPage, kuri atsižvelgia į Zoom, Rotation, rodymo režimą, puslapių išklotinę ir slinkties poslinkį, tada kviečia PDFium FPDFPage_FormFieldZOrderAtPoint su puslapio formų rankena
Didenesnė grąžinama reikšmė reiškia, kad valdiklis sukrautas arčiau peržiūros programos, tai yra piešiamas ant laukų su mažesnėmis reikšmėmis. Dėstymo tvarka čia yra aukščiausioji anotacijų krūvos smūgio tikrinimo tvarka, ne valdiklio indeksas, todėl reikšmes laikykite nepermatomaisiais lyginamosiais skaičiais
Kur formos valdiklis ir nuorodų anotacija persidengia, šį rezultatą palyginkite su LinkZOrderAt: abi reikšmės kyla iš tos pačios anotacijų dėstymo tvarkos, o didesnioji nurodo anotaciją, kurią PDFium laiko patirtąja tame pikselyje
TPdf atitikmuo TPdf.FormFieldZOrderAtPoint(X, Y: Double) apvynioja tą pačią PDFium funkciją. Jis priima puslapio erdvės Double koordinates tiesiogiai ir iškelia išimtį, kai joks puslapis aktyvus arba neinicijuota formų aplinka, o TPdfView apvalkalas nesėka švelniai ir grąžina -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;