PDFium Component Docs

FormFieldZOrderAt-metode

Component: TPdfView  ·  Unit: PDFium
Returnerer stabelrekkefølgen til det øverste AcroForm-feltet truffet ved visningens piksel (X, Y), eller -1

Syntax

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

Parameters

X, YInteger. Pikselkoordinater relativt til visningskontrollen, de samme koordinatene musehendelsene mottar

Return Value

Integer. Z-rekkefølgen til skjemafeltet ved det treffestede punktet, eller -1 når intet skjemafelt treffes eller testen ikke kan kjøre

Description

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

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