function FormFieldZOrderAt(X, Y: Integer): Integer;
| X, Y | Integer. Współrzędne pikselowe względem sterowania podglądu, te same współrzędne, które otrzymują zdarzenia myszy |
Wykonuje test trafienia piksela ekranu względem adnotacji widżetów AcroForm bieżącej strony i raportuje pozycję ułożenia tej najwyżej. Podgląd najpierw przelicza (X, Y) na współrzędne przestrzeni strony przez DeviceToPage, co uwzględnia Zoom, Rotation, tryb wyświetlania, marginesy strony i przesunięcie przewijania, a następnie wywołuje funkcję PDFium FPDFPage_FormFieldZOrderAtPoint z uchwytem formularza strony
Większa zwracana wartość oznacza, że widżet jest ułożony bliżej widza, czyli rysowany nad polami o mniejszych wartościach. Z-order to tutaj kolejność testu trafień najwyższego poziomu stosu adnotacji, a nie indeks widżetu, więc traktuj te wartości jako nieprzezroczyste liczby porównawcze
Tam, gdzie widżet formularza nakłada się z adnotacją łącza, porównaj ten wynik z LinkZOrderAt: obie wartości pochodzą z tej samej kolejności ułożenia stosu adnotacji, a wyższa wskazuje adnotację, którą PDFium uznaje za trafioną w tym pikselu
Odpowiednik w TPdf, TPdf.FormFieldZOrderAtPoint(X, Y: Double), opakowuje tę samą funkcję PDFium. Przyjmuje bezpośrednio współrzędne przestrzeni strony w Double i zgłasza wyjątek, gdy żadna strona nie jest aktywna albo środowisko formularzy nie jest zainicjalizowane, podczas gdy opakowanie TPdfView zawodzi łagodnie i zwraca -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;