function FormFieldZOrderAt(X, Y: Integer): Integer;
| X, Y | Integer. Görüntüleyici denetimine göre piksel koordinatları; mouse olaylarının aldığı koordinatların aynısı |
Bir ekran pikselini geçerli sayfanın AcroForm widget ek açıklamalarına karşı isabet testine sokar ve en üsttekisinin yığınlama konumunu raporlar. Görüntüleyici önce (X, Y) koordinatını DeviceToPage ile sayfa uzayı koordinatlarına çevirir; bu dönüşüm Zoom, Rotation, görüntüleme modu, sayfa dolgusu ve kaydırma ofsetini hesaba katar. Ardından sayfanın form tanıtıcısıyla PDFium'un FPDFPage_FormFieldZOrderAtPoint işlevini çağırır
Daha büyük bir dönüş değeri, widget'ın görüntüleyiciye daha yakın istiflendiği, yani daha küçük değerli alanların üstüne çizildiği anlamına gelir. Buradaki z-sırası ek açıklama yığınının en üstteki isabet testi sırasıdır; widget indeksi değil, bu yüzden değerleri opak karşılaştırma sayıları olarak ele alın
Bir form widget'ı ile bir link ek açıklaması örtüştüğünde bu sonucu LinkZOrderAt ile karşılaştırın: her iki değer de aynı ek açıklama yığınlama sırasından gelir ve yüksek olan, PDFium'un o pikselde isabet saydığı ek açıklamayı tanımlar
TPdf karşılığı TPdf.FormFieldZOrderAtPoint(X, Y: Double) aynı PDFium işlevini sarar. Sayfa uzayı koordinatlarını doğrudan Double olarak alır ve etkin sayfa yokken ya da form ortamı başlatılmamışken istisna fırlatır; oysa TPdfView sarmalayıcısı yumuşak başarısız olur ve -1 döndürür
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;