property FormFieldInfoAt[X, Y: Single]: TPdfFormFieldInfo; // read only
تجري الخاصية FormFieldInfoAt اختبار إصابة على الصفحة النشطة حاليًا وتُرجع
سجل TPdfFormFieldInfo الذي يصف تعليق الأداة عند
(X, Y). والإحداثيات في فضاء مستخدم PDF، بأصل عند
الركن السفلي الأيسر للصفحة ووحدات معبر عنها بالنقاط (1/72 بوصة). ويطابق السجل
ما تُرجعه FormFieldInfo[Index] — نوع الحقل
(fiTextField و fiCheckBox و …) واسم الحقل والاسم
البديل والأعلام وتسميات الخيارات وحالة التحديد وقيمة التصدير وحجم الخط.
وعندما لا تقع الإحداثية داخل أي مستطيل أداة تُرجع FormFieldInfoAt
TPdfFormFieldInfo مهيأً افتراضيًا —
FieldType = fiUnknown ونصوص فارغة في كل الحقول. استخدم
HasFormFieldAt[X, Y] لفحص نعم/لا رخيص قبل جلب السجل
الكامل، أو اكتفِ بفحص FieldType المُرجع.
تكلفة البحث O(n) على أدوات الصفحة، وتفك إضافةً إلى ذلك
البيانات الوصفية Unicode للحقل، فهي أثقل من HasFormFieldAt. وفي معالج
mouse-move افحص HasFormFieldAt أولًا؛ ولا تستدعِ
FormFieldInfoAt إلا عند النقر أو دخول التحويم. وإحداثيات موضع الفأرة تمر أولًا عبر
TPdfView.PointToPage لتحويل بكسلات الجهاز إلى وحدات الصفحة.
/Annots هو الفائز).FieldType = fiSignature — ادمجها مع
SignatureCount لاستعراض حالة التوقيع على حدة.FormFieldAt يبطل السجلات المخزنة مؤقتًا؛
فأعد القراءة بعد كل كتابة.
procedure TForm1.PdfView1Click(Sender: TObject);
var Info: TPdfFormFieldInfo;
PageX, PageY: Double;
begin
PdfView1.PointToPage(Mouse.CursorPos.X, Mouse.CursorPos.Y, PageX, PageY);
Info := Pdf1.FormFieldInfoAt[PageX, PageY];
if Info.FieldType <> fiUnknown then
ShowMessage(Info.Name);
end;