function FormFieldZOrderAt(X, Y: Integer): Integer;
| X, Y | Integer. Koordinat piksel relatif terhadap kontrol penampil, koordinat yang sama yang diterima event mouse |
Menjalankan hit-test piksel layar terhadap anotasi widget AcroForm halaman saat ini dan melaporkan posisi tumpukan yang paling atas. Penampil pertama mengonversi (X, Y) ke koordinat ruang halaman dengan DeviceToPage, yang memperhitungkan Zoom, Rotation, mode tampilan, padding halaman, dan offset scroll, lalu memanggil FPDFPage_FormFieldZOrderAtPoint milik PDFium dengan handle formulir halaman
Nilai kembalian yang lebih besar berarti widget ditumpuk lebih dekat ke penampil, artinya digambar di atas bidang dengan nilai lebih kecil. Z-order di sini adalah urutan hit-test teratas dari tumpukan anotasi, bukan indeks widget, jadi perlakukan nilainya sebagai angka perbandingan opaque
Ketika widget formulir dan anotasi link tumpang-tindih, bandingkan hasil ini dengan LinkZOrderAt: kedua nilai berasal dari urutan tumpukan anotasi yang sama, dan yang lebih tinggi mengidentifikasi anotasi yang oleh PDFium dianggap terkena pada piksel itu
Padanan TPdf TPdf.FormFieldZOrderAtPoint(X, Y: Double) membungkus fungsi PDFium yang sama. Ia menerima koordinat ruang halaman dalam Double secara langsung dan memunculkan exception ketika tidak ada halaman aktif atau lingkungan formulir belum diinisialisasi, sedangkan pembungkus TPdfView gagal dengan lembut dan mengembalikan -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;