function FormFieldZOrderAt(X, Y: Integer): Integer;
| X, Y | Integer. קואורדינטות פיקסלים ביחס לפקד המציג, אותן קואורדינטות שאירועי העכבר מקבלים |
מבצע hit testing של פיקסל מסך מול הערות ה-widget של ה-AcroForm בעמוד הנוכחי ומדווח על מיקום הערימה של העליון שבהם. המציג ממיר תחילה את (X, Y) לקואורדינטות מרחב עמוד באמצעות DeviceToPage, שמביאה בחשבון את Zoom, Rotation, מצב התצוגה, הריפוד של העמוד והיסט הגלילה, ואז קורא ל-FPDFPage_FormFieldZOrderAtPoint של PDFium עם ידית הטופס של העמוד
ערך החזרה גדול יותר פירושו שה-widget מוערם קרוב יותר למציג, כלומר מצויר מעל שדות בעלי ערכים קטנים יותר. סדר ה-z כאן הוא סדר ה-hit testing העליון של ערימת ההערות, ולא אינדקס widget, ולכן יש להתייחס לערכים כמספרי השוואה אטומים
כאשר widget של טופס והערת קישור חופפים, השוו את התוצאה הזו עם LinkZOrderAt: שני הערכים מגיעים מאותו סדר ערימה של הערות, והגבוה מביניהם מזהה את ההערה ש-PDFium רואה כנפגעת באותו פיקסל
מקבילת ה-TPdf, TPdf.FormFieldZOrderAtPoint(X, Y: Double), עוטפת את אותה פונקציית PDFium. היא מקבלת ישירות קואורדינטות מרחב עמוד ב-Double ומעלה חריגה כאשר אין עמוד פעיל או שסביבת הטפסים לא אותחלה, בעוד שעטיפת ה-TPdfView נכשלת בעדינות ומחזירה -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;