property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only
type TPdfPageObjectEditTransactionStatus = record
Active: Boolean;
Dirty: Boolean;
PageNumber: Integer;
MutationCount: Integer;
ContentGenerationCount: Integer;
end;
| Active | True nuo BeginPageObjectEditTransaction iki atitinkamo patvirtinimo arba atšaukimo |
| Dirty | True, kai transakcijoje įvykdytas bent vienas pakeitimas |
| PageNumber | Puslapis, skaičiuojamas nuo vieneto, prie kurio transakcija buvo prisirišta prasidėdama |
| MutationCount | Transakcijoje užrašyti sėkmingi UpdatePage kreipiniai |
| ContentGenerationCount | Turinio generavimai, atlikti patvirtinant transakcijas su pakeitimais |
Puslapio objektų redagavimo transakcija atideda natyvų turinio generavimą, kad puslapio objektų įterpimo, pašalinimo, transformavimo, savybių, turinio žymų ir anotacijos išvaizdos pakeitimai būtų taikomi kaip viena atominė puslapio apimties operacija. Ši savybė atskleidžia jos einamąją būseną apsaugoms ir diagnostikai
MutationCount didėja po kiekvieno sėkmingo atidėto pakeitimo, ir kiekvienas toks pakeitimas taip pat panaikina puslapio podėlius, kad po redagavimo neišliktų joks pasenęs atvaizdas, momentinė kopija ar miniatiūra
Pakeitimų turinčios transakcijos patvirtinimas vieną kartą atkuria puslapio turinį ir padidina ContentGenerationCount. Nieko nekeitusios transakcijos patvirtinimas arba atšaukimas atkuria pradinę būseną negeneravus turinio
Patvirtinimas ir atšaukimas išvalo Active ir Dirty, bet PageNumber ir abu skaitiklius palieka kaip galutinę diagnostiką, kol kita transakcija, prasidėdama, jų nenustato iš naujo
Už transakcijos ribų kiekvienas laukas turi numatytąją reikšmę, todėl Active = False yra patikimas tuščiosios būsenos testas
Būsena apima tik puslapio objektų transakcijas; dokumento lygio transakcijas, atidarytas su BeginEditTransaction, praneša redagavimo žurnalas
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;