property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only
type TPdfPageObjectEditTransactionStatus = record
Active: Boolean;
Dirty: Boolean;
PageNumber: Integer;
MutationCount: Integer;
ContentGenerationCount: Integer;
end;
| Active | Tosi BeginPageObjectEditTransaction-kutsun ja siihen kuuluvan commitin tai rollbackin välillä |
| Dirty | Tosi, kun vähintään yksi muutos on suoritettu tapahtuman sisällä |
| PageNumber | 1-pohjainen sivu, johon tapahtuma sidottiin alkaessaan |
| MutationCount | Tapahtuman sisällä kirjatut onnistuneet UpdatePage-kutsut |
| ContentGenerationCount | Sisällön generoinnit, jotka suoritettiin muutoksia sisältävien tapahtumien commitoinnissa |
Sivuobjektien muokkaustapahtuma lykkää natiivia sisällön generointia niin, että sivuobjektien lisäys-, poisto-, muunnos-, ominaisuus-, sisältömerkintä- ja merkintäulkoasumuutokset toteutuvat yhtenä atomisena sivukohtaisena operaationa. Tämä ominaisuus paljastaa sen ajankohtaisen tilan suojauksia ja diagnostiikkaa varten
MutationCount kasvaa jokaisen onnistuneen lykätyn muutoksen myötä, ja jokainen tällainen muutos mitätöi myös sivuvälimuistit, joten mikään vanhentunut renderöinti, tilannevedos tai pikkukuva ei selviä muokkauksesta
Muutoksia sisältävän tapahtuman commitointi generoi sivun sisällön kerran ja kasvattaa ContentGenerationCount-arvoa. Muutoksettomman tapahtuman commitointi tai rollback palauttaa perustilan ilman generointia
Commit ja rollback tyhjentävät Active- ja Dirty-liput mutta jättävät PageNumber-arvon ja molemmat laskurit lopullisiksi diagnostiikkatiedoiksi, kunnes seuraava tapahtuma alkaa ja nollaa ne
Tapahtuman ulkopuolella jokainen kenttä pitää oletusarvoaan, joten Active = False on luotettava joutotilan testi
Tila kattaa vain sivuobjektitapahtumat; BeginEditTransaction-kutsulla avatut dokumenttitason tapahtumat raportoi muokkausloki
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;