property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only
type TPdfPageObjectEditTransactionStatus = record
Active: Boolean;
Dirty: Boolean;
PageNumber: Integer;
MutationCount: Integer;
ContentGenerationCount: Integer;
end;
| Active | True بين BeginPageObjectEditTransaction والإتمام أو الاسترجاع المطابق له |
| Dirty | True بمجرد تنفيذ تعديلٍ واحد على الأقل داخل المعاملة |
| PageNumber | الصفحة التي ارتبطت بها المعاملة عند بدايتها، وترقيمها يبدأ من الواحد |
| MutationCount | استدعاءات UpdatePage الناجحة المسجَّلة داخل المعاملة |
| ContentGenerationCount | عمليات توليد المحتوى المُنفَّذة عند إتمام المعاملات التي أُجريت فيها تعديلات |
تؤجل معاملة تحرير كائنات الصفحة توليد المحتوى الأصلي بحيث تُطبَّق تعديلات إدراج كائن الصفحة وإزالته وتحويله وخاصياته وعلامات محتواه ومظهر التعليقات كعملية واحدة ذرية محصورة بنطاق الصفحة؛ وتكشف هذه الخاصية حالتها الحية لأغراض الحماية والتشخيص
يتقدّم MutationCount مع كل تعديل مؤجل ناجح، ويُبطل كل تعديل من هذا النوع ذاكرات الصفحة المؤقتة أيضًا فلا يبقى بعد التحرير أي عرض رسومي أو لقطة أو مصغّرة قديمة
يولِّد إتمام معاملة معدَّلة محتوى الصفحة مرة واحدة ويرفع ContentGenerationCount؛ أما إتمام معاملة بلا تعديلات أو الاسترجاع فيستعيد الأساس دون توليد
يمحو الإتمام والاسترجاع Active و Dirty لكنهما يتركان PageNumber والعدّادين كتشخيص نهائي حتى تبدأ المعاملة التالية وتصفّرهما
خارج المعاملة يحمل كل حقل قيمته الافتراضية، فاختبار الخمول الموثوق هو Active = False
تغطي الحالة معاملات كائنات الصفحة وحدها؛ أما معاملات مستوى المستند المفتوحة عبر BeginEditTransaction فيُبلِّغ عنها دفتر التحرير
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;