PDFium Delphi Component Docs

ویژگی FormFieldInfoAt

کامپوننت: TPdf  ·  واحد: PDFium
رکورد فیلد فرم برای ویجت واقع در مختصات صفحهٔ داده‌شده

Syntax

property FormFieldInfoAt[X, Y: Single]: TPdfFormFieldInfo; // read only

Description

FormFieldInfoAt یک آزمون برخورد روی صفحهٔ فعال جاری انجام می‌دهد و رکورد TPdfFormFieldInfo توصیف‌کنندهٔ حاشیه‌نویسی ویجت در (X, Y) را برمی‌گرداند. مختصات در فضای کاربر PDF هستند، با مبدأ در گوشهٔ پایین-چپ صفحه و واحد بر حسب پوینت (1/72 اینچ). رکورد همان چیزی را بازتاب می‌دهد که FormFieldInfo[Index] برمی‌گرداند — نوع فیلد (fiTextField، fiCheckBox، …)، نام فیلد، نام جایگزین، پرچم‌ها، برچسب‌های گزینه، حالت انتخاب، مقدار برون‌برد و اندازهٔ قلم

وقتی مختصات داخل هیچ مستطیل ویجتی نیفتد، FormFieldInfoAt یک TPdfFormFieldInfo مقداردهی‌شده با پیش‌فرض برمی‌گرداند — FieldType = fiUnknown و رشته‌های خالی در سراسر رکورد. پیش از گرفتن رکورد کامل از HasFormFieldAt[X, Y] برای کاوش ارزان بله/خیر استفاده کنید، یا صرفاً FieldType برگشتی را بررسی کنید

این جست‌وجو O(n) روی ویجت‌های صفحه است و به‌طور اضافی فرادادهٔ فیلد Unicode را رمزگشایی می‌کند، پس از HasFormFieldAt سنگین‌تر است. در گردانندهٔ حرکت ماوس ابتدا HasFormFieldAt را بررسی کنید؛ FormFieldInfoAt را تنها هنگام کلیک یا ورود هاور فراخوانی کنید. مختصات حاصل از موقعیت ماوس ابتدا از TPdfView.PointToPage می‌گذرند تا پیکسل‌های دستگاه به واحدهای صفحه ترجمه شوند

Remarks

Example

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;

See Also

HasFormFieldAt, FormFieldInfo, FormFieldAt, FormFieldCount