procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags);
| Index | Tamsayı. Geçerli sayfadaki form alanının 0 tabanlı annotation dizini. 0 ile AnnotationCount - 1 aralığında olmalıdır |
| Flags | TPdfFormFieldFlags. Alan için uygulanacak TPdfFormFieldFlag değerleri kümesi. Bunlar, PDF belirtiminde tanımlanan AcroForm alan bayraklarına karşılık gelir; örneğin read-only, required ya da no-export |
SetFormFieldFlags, geçerli sayfadaki form widget annotation'ına verilen 0 tabanlı annotation dizininde AcroForm alan bayraklarını yazar. Bayraklar alanın etkileşimli davranışını denetler: örneğin read-only yapmak kullanıcının değerini değiştirmesini engeller, required yapmak ise form gönderilmeden önce doldurulması gerektiğini bildirir
Index parametresi FormFieldCount tarafından bildirilen form-field dizinini değil, AnnotationCount tarafından bildirilen annotation dizinini ifade eder. Hangi annotation dizinlerinin form widget'larına karşılık geldiğini belirlemek için FormFieldInfo ya da HasFormFieldAt kullanın. Bir alana dizin yerine sayfa koordinatlarıyla erişmek için SetFormFieldFlagsAt kullanın
Bayrak değişiklikleri belgenin bellek içi kopyasında hemen geçerli olur ama SaveAs çağrılana kadar kalıcı değildir. Bir formu doldurduktan sonra programatik olarak kilitlerken önerilen sıra şudur: FormField[] değerlerini ata, GenerateFormAppearances çağır, bayrakları read-only yap, sonra SaveAs çağır
var
I: Integer;
begin
Pdf1.PageIndex := 0;
// Mark every form field on the page as read-only
for I := 0 to Pdf1.AnnotationCount - 1 do
if Pdf1.FormFieldInfo[I].FieldType <> fftUnknown then
Pdf1.SetFormFieldFlags(I, [ffReadOnly]);
Pdf1.SaveAs('output_readonly.pdf');
end;