property HasFormFieldAt[X, Y: Single]: Boolean; // read only
HasFormFieldAt виконує перевірку влучання на поточній активній сторінці: повертає
True, коли задана координата (X, Y) потрапляє всередину прямокутника
будь-якої анотації-віджета. Координати задаються в просторі користувача PDF — та сама
система координат, що й PageWidth / PageHeight, з початком у
нижньому лівому куті, X зростає праворуч, Y зростає вгору, одиниці — пункти
(1/72 дюйма)
Властивість повертає False, коли Active дорівнює False,
коли документ не має віджетів AcroForm або коли подана координата не потрапляє
жодному прямокутнику віджета. Це обгортка сталої складності навколо
FPDFPage_HasFormFieldAtPoint PDFium — ідеально для зворотного зв’язку
руху миші / наведення у переглядачі, де значення запитується багато разів на секунду
Перевірка влучання враховує лише прямокутник віджета — не межі зовнішнього вигляду. Кнопки
або прапорці, видимий знак яких менший за прямокутник віджета, усе одно
повідомляють True для всього прямокутника. Поєднуйте з
FormFieldInfoAt[X, Y], щоб отримати запис відповідного поля, щойно
перевірка влучання підтвердить, що курсор над полем; такий шаблон уникає важчого
отримання відомостей під час кожної події руху миші
TPdfView.DeviceToPage або самостійно застосуйте зворотне зміщення Zoom / прокрутки
перед викликом цієї властивостіFormFieldInfoAt, коли
потрібно знати, яке саме поле влучило
procedure TForm1.PdfView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var PageX, PageY: Double;
begin
PdfView1.DeviceToPage(X, Y, PageX, PageY);
if Pdf1.HasFormFieldAt[PageX, PageY] then
PdfView1.Cursor := crHandPoint
else
PdfView1.Cursor := crDefault;
end;