PDFium Delphi Component Docs

FormFieldZOrderAt metodas

Komponentas: TPdfView  ·  Modulis: PDFium
Grąžina peržiūros pikselyje (X, Y) smūgio patirtosios aukščiausiosios AcroForm lauko dėžės dėstymo tvarką arba -1

Syntax

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

Parameters

X, YInteger. Pikselių koordinatės, susietos su peržiūros valdikliu, tos pačios koordinatės, kurias gauna pelės įvykiai

Return Value

Integer. Formos lauko, patirto smūgio tikrinimo taške, dėstymo tvarka arba -1, kai joks formos laukas nepatirtas arba testą atlikti nepavyksta

Description

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

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