function FormFieldZOrderAt(X, Y: Integer): Integer;
| X, Y | Integer. Tọa độ pixel tương đối với control trình xem, chính là các tọa độ mà các sự kiện chuột nhận được |
Dò trúng một pixel màn hình đối chiếu với các chú thích widget AcroForm của trang hiện tại và báo cáo vị trí chồng lớp của widget trên cùng. Trình xem trước chuyển (X, Y) sang tọa độ không gian trang bằng DeviceToPage, có tính đến Zoom, Rotation, chế độ hiển thị, đệm lề trang và offset cuộn, sau đó gọi FPDFPage_FormFieldZOrderAtPoint của PDFium với handle biểu mẫu của trang
Giá trị trả về lớn hơn nghĩa là widget được xếp gần người xem hơn, tức là được vẽ đè lên các trường có giá trị nhỏ hơn. Z-order ở đây là thứ tự dò trúng trên cùng của chồng chú thích, không phải một chỉ số widget, nên hãy coi các giá trị này là các con số so sánh opaque
Khi một widget biểu mẫu và một chú thích link chồng lên nhau, hãy so kết quả này với LinkZOrderAt: cả hai giá trị đều đến từ cùng một thứ tự chồng lớp chú thích, và giá trị cao hơn chỉ ra chú thích mà PDFium coi là bị trúng tại pixel đó
Bản TPdf tương ứng TPdf.FormFieldZOrderAtPoint(X, Y: Double) bọc cùng một hàm PDFium. Nó nhận trực tiếp tọa độ không gian trang kiểu Double và phát sinh ngoại lệ khi không có trang nào hoạt động hoặc môi trường biểu mẫu chưa khởi tạo, trong khi bản bọc TPdfView thất bại êm và trả về -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;