property FormFieldInfoAt[X, Y: Single]: TPdfFormFieldInfo; // read only
FormFieldInfoAt, geçerli etkin sayfada bir hit-test yapar ve (X, Y) konumundaki widget annotation'ını tanımlayan TPdfFormFieldInfo kaydını döndürür. Koordinatlar PDF user space içindedir; orijin sayfanın sol alt köşesindedir ve birimler point cinsindendir (1/72 inch). Kayıt, FormFieldInfo[Index]'in döndürdüğü bilgiyi yansıtır — field type (fiTextField, fiCheckBox, …), field name, alternate name, flag'ler, option labels, checked state, export value ve font size
Koordinat herhangi bir widget rectangle'ının içine düşmezse FormFieldInfoAt varsayılan olarak başlatılmış bir TPdfFormFieldInfo döndürür — FieldType = fiUnknown ve her yerde boş dizeler. Tam kaydı almadan önce ucuz bir evet/hayır denetimi için HasFormFieldAt[X, Y] kullanın ya da doğrudan dönen FieldType değerini kontrol edin
Arama sayfanın widget'ları üzerinde O(n) karmaşıklığındadır ve ayrıca Unicode field metadata'yı çözer, bu yüzden HasFormFieldAt'ten daha ağırdır. Bir mouse-move handler içinde önce HasFormFieldAt çağırın; FormFieldInfoAt'i yalnızca tıklamada veya hover-enter sırasında çağırın. Fare konumundan gelen koordinatlar önce cihaz piksellerini sayfa birimlerine çevirmek için TPdfView.PointToPage üzerinden geçirilir
/Annots'in son girdisi kazanır)FieldType = fiSignature — signing durumunu ayrı numaralandırmak için SignatureCount ile birleştirinFormFieldAt üzerinden widget'ları değiştirmek önbelleğe alınmış kayıtları geçersiz kılar; her yazmadan sonra yeniden okuyun
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;