function FormFieldZOrderAt(X, Y: Integer): Integer;
| X, Y | Integer. Pikselikoordinaatit katselinkontrollin suhteen, samat koordinaatit, jotka hiiritapahtumat vastaanottavat |
Osumatestaa näytön pikselin nykyisen sivun AcroForm-widgetmerkintöjä vastaan ja raportoi päällimmäisen pinosijainnin. Katselin muuntaa ensin koordinaatit (X, Y) sivuavaruuteen metodilla DeviceToPage, joka ottaa huomioon Zoomin, Rotationin, näyttötilan, sivun täytteen ja vierityssiirtymän, ja kutsuu sitten PDFiumin FPDFPage_FormFieldZOrderAtPointia sivun lomakekahvalla
Suurempi paluuarvo tarkoittaa, että widget on pinottu lähemmäs katselijaa, eli se piirretään pienemmän arvon omaavien kenttien päälle. Z-järjestys tarkoittaa tässä merkintäpinon päällimmäistä osumatestausjärjestystä, ei widgetin indeksiä, joten käsittele arvoja läpinäkymättöminä vertailulukuina
Kun lomakewidget ja linkkimerkintä menevät päällekkäin, vertaa tätä tulosta metodiin LinkZOrderAt: molemmat arvot tulevat samasta merkintäpinon järjestyksestä, ja suurempi niistä tunnistaa merkinnän, jota PDFium pitää kyseisen pikselin osumana
TPdf-vastine TPdf.FormFieldZOrderAtPoint(X, Y: Double) käärii saman PDFium-funktion. Se ottaa sivuavaruuden koordinaatit suoraan Double-tyyppisinä ja nostaa poikkeuksen, kun mikään sivu ei ole aktiivinen tai lomakeympäristöä ei ole alustettu, kun taas TPdfView-kääre epäonnistuu pehmeästi ja palauttaa arvon -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;