PDFium Delphi Component Docs

FormFieldZOrderAt yöntemi

Component: TPdfView  ·  Unit: PDFium
Görüntüleyici pikselinde (X, Y) isabet eden en üst AcroForm alanının yığınlama sırasını, isabet yokken -1 döndürür

Syntax

function FormFieldZOrderAt(X, Y: Integer): Integer;

Parameters

X, YInteger. Görüntüleyici denetimine göre piksel koordinatları; mouse olaylarının aldığı koordinatların aynısı

Return Value

Integer. Isabet testi yapılan noktadaki form alanının z-sırası; form alanı isabet etmediğinde ya da test çalıştırılamadığında -1

Description

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

Remarks

Example

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;

See Also

LinkZOrderAt, HasFormFieldAt, FormFieldInfoAt, FormFieldTypeAt, DeviceToPage, AllowFormEvents