Es gibt auch eine Undo-Funktion des Richedits. Die ist allerdings nicht allzu gut.
RichEdit1.Undo;
Die des TjvRichedits ist schon wesentlich besser.
Habs jetzt nur so schnell hingeschrieben. Falls du es mit deinem Ansatz machen willst probiers mal so (Hab die Umlaute ersetzt):
Delphi-Quellcode:
var
changeoff:boolean;
Aenderungen:
Array of string;
Anzahl_Aenderungen: Integer;
procedure TEingabetext_Formular.RückgängigClick(Sender: TObject);
begin
changeoff := true;
dec(Anzahl_Aenderungen);
richedit1.Text := Aenderungen[Anzahl_Aenderungen-1];
SetLength(Aenderungen, Anzahl_Aenderungen);
changeoff := false;
end;
procedure TEingabetext_Formular.EingabetextChange(Sender: TObject);
begin
if changeoff
then exit;
inc(Anzahl_Aenderungen);
SetLength(Aenderungen, Anzahl_Aenderungen);
Aenderungen[Anzahl_Aenderungen-1] := form1.richedit1.Text;
end;
Du solltest generell noch abfragen, ob ein Rückgängig überhaupt möglich ist, sonst bekommst du eventuell eine Zugriffsverletzung.