function FormFieldZOrderAt(X, Y: Integer): Integer;
| X, Y | Integer. Піксельні координати відносно елемента керування переглядача, ті самі координати, які отримують події миші |
Виконує тест влучання екранного пікселя проти анотацій віджетів AcroForm поточної сторінки і звітує позицію накладання найверхнішої з них. Переглядач спершу перетворює (X, Y) у координати простору сторінки через DeviceToPage, що враховує Zoom, Rotation, режим показу, відступи сторінки та зсув прокручування, а потім викликає FPDFPage_FormFieldZOrderAtPoint PDFium з дескриптором форми сторінки
Більше повернене значення означає, що віджет накладено ближче до глядача, тобто малюється поверх полів із меншими значеннями. Z-order тут — це порядок перевірки влучання найверхніх елементів стеку анотацій, а не індекс віджета, тож ставтеся до значень як до непрозорих чисел для порівняння
Де віджет форми й анотація посилання перекриваються, порівняйте цей результат із 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;