property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only
type TPdfPageObjectEditTransactionStatus = record
Active: Boolean;
Dirty: Boolean;
PageNumber: Integer;
MutationCount: Integer;
ContentGenerationCount: Integer;
end;
| Active | BeginPageObjectEditTransaction ile eşleşen commit ya da rollback arasında True |
| Dirty | İşlem içinde en az bir değişiklik çalıştırıldığında True |
| PageNumber | İşlem başladığında bağlı olduğu bir tabanlı sayfa |
| MutationCount | İşlem içinde kaydedilen başarılı UpdatePage çağrıları |
| ContentGenerationCount | Değişiklik içeren işlemler commit edilirken gerçekleştirilen içerik oluşturma sayısı |
Sayfa nesnesi düzenleme işlemi, yerel içerik oluşturmayı erteler; böylece sayfa nesnesi ekleme, kaldırma, dönüştürme, özellik, içerik işareti ve ek açıklama görünümü değişiklikleri tek bir atomik, sayfa kapsamlı işlem olarak uygulanır. Bu özellik, canlı durumunu koruma kontrolleri ve tanılama için açığa çıkarır
MutationCount başarılı her ertelenmiş değişiklikle artar ve her bu tür değişiklik aynı zamanda sayfa önbelleklerini geçersiz kılar; böylece düzenlemeden sonra bayat bir işleme, anlık görüntü ya da küçük resim kalmaz
Değişiklik içeren bir işlemi commit etmek sayfa içeriğini bir kez yeniden oluşturur ve ContentGenerationCount değerini ilerletir. Hiçbir şey yapmayan bir işlemi commit etmek ya da rollback yapmak, temel durumu oluşturma yapmadan geri yükler
Commit ve rollback Active ile Dirty değerlerini temizler; ancak bir sonraki işlem başlayıp sıfırlayana dek PageNumber ve iki sayacı son tanılama değerleri olarak bırakır
İşlem dışında her alan varsayılan değerini taşır; bu yüzden boşta kalma testi için güvenilir olan Active = False kontrolüdür
Durum yalnızca sayfa nesnesi işlemlerini kapsar; BeginEditTransaction ile açılan belge düzeyi işlemleri düzenleme günlüğü raporlar
Pdf.BeginPageObjectEditTransaction;
try
Pdf.TransformPageObject(0, Matrix);
Status := Pdf.PageObjectEditTransactionStatus;
LogTransactionProgress(Status.MutationCount, Status.Dirty);
Pdf.CommitPageObjectEditTransaction;
except
if Pdf.PageObjectEditTransactionStatus.Active then
Pdf.RollbackPageObjectEditTransaction;
raise;
end;