Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi SynEdit ClearUndo (https://www.delphipraxis.net/209954-synedit-clearundo.html)

Schorschi5566 11. Feb 2022 18:14

SynEdit ClearUndo
 
Hallo zusammen,

ich verwende SynEdit schon ewig in einer Anwendung und mir ist heute das erste Mal aufgefallen, dass ich nach dem Laden einer Datei in die SynEdit-Komponente, das zeilenweise per UNDO (STRG-Z) rückgängig machen kann. Modified ist dann logischerweise True. Das Editorfenster wieder leer.

Mit REDO (STRG-SHIFT-Z) kann ich auch alle Zeilen wieder einfügen. Modified ist dann wieder False.


Finde ich etwas merkwürdig. Mir wäre es lieber, wenn der Undo-Buffer nach dem Laden der Datei erst einmal leer wäre.


Ich habe dann versucht nach dem Laden der Datei den UNDO-Buffer mit SynEdit.ClearUndo zu löschen. Das funktioniert, aber dann scheint Modified nicht mehr richtig zu funktionieren.

D.h. SynEdit "merkt" nach dem Schreiben von Text nicht mehr, dass sich die Datei geändert hat. Modified bleibt False.

Verwende ich dann aber wieder UNDO, werden künftige Änderungen wieder erkannt. Sieht nach Bug aus, oder?


Ich verwende die aktuelle Version von TurboPack/SynEdit.


Gibt es einen Kniff, wie man den Undo-Buffer korrekt löscht?


Vielen Dank für Eure Antworten. ;-)

Uwe

Schorschi5566 11. Feb 2022 18:53

AW: SynEdit ClearUndo
 
Habe eine Lösung gefunden.

Vielleicht hat ja mal jemand ein ähnliches Problem mit SynEdit.ClearUndo:

Das ist mein Workarround:

Delphi-Quellcode:
  FEditor.CurrEd.ClearUndo;
  FEditor.CurrEd.BeginUndoBlock;
  FEditor.CurrEd.Lines.Add(' ');
  FEditor.CurrEd.EndUndoBlock;
  FEditor.CurrEd.Undo;
Manchmal hilft es nur drüber nachzudenken, nee eigentlich immer. :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz