PDFium Delphi Component Docs

FormFieldZOrderAt метод

Component: TPdfView  ·  Unit: PDFium
Повертає z-order найверхнього поля AcroForm, влученого в піксель переглядача (X, Y), або -1

Syntax

function FormFieldZOrderAt(X, Y: Integer): Integer;

Parameters

X, YInteger. Піксельні координати відносно елемента керування переглядача, ті самі координати, які отримують події миші

Return Value

Integer. Z-order поля форми в точці перевірки влучання або -1, коли поле форми не влучено чи тест не може виконатися

Description

Виконує тест влучання екранного пікселя проти анотацій віджетів AcroForm поточної сторінки і звітує позицію накладання найверхнішої з них. Переглядач спершу перетворює (X, Y) у координати простору сторінки через DeviceToPage, що враховує Zoom, Rotation, режим показу, відступи сторінки та зсув прокручування, а потім викликає FPDFPage_FormFieldZOrderAtPoint PDFium з дескриптором форми сторінки

Більше повернене значення означає, що віджет накладено ближче до глядача, тобто малюється поверх полів із меншими значеннями. Z-order тут — це порядок перевірки влучання найверхніх елементів стеку анотацій, а не індекс віджета, тож ставтеся до значень як до непрозорих чисел для порівняння

Де віджет форми й анотація посилання перекриваються, порівняйте цей результат із LinkZOrderAt: обидва значення походять з того самого порядку накладання анотацій, і більше з них визначає анотацію, яку PDFium вважає влученою в той піксель

Парний метод TPdf TPdf.FormFieldZOrderAtPoint(X, Y: Double) загортає ту саму функцію PDFium. Він приймає координати простору сторінки в Double безпосередньо і породжує виняток, коли немає активної сторінки або середовище форм не ініціалізовано, тоді як обгортка TPdfView зазнає м'якої невдачі і повертає -1

Remarks

Example

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;

See Also

LinkZOrderAt, HasFormFieldAt, FormFieldInfoAt, FormFieldTypeAt, DeviceToPage, AllowFormEvents