In meinem Programm kann der User Spaltennamen aus einer Liste von verfügbaren Spalten per Drag'n Drop in einen Filter (SynMemo) ziehen.
Das funktioniert auch einwandfrei. Doch wenn man mehrere Spalten "rübergezogen" hat und dann einmal auf Undo klickt/[Strg] + [Z] drückt, werden
alle eingefügten Spalten entfernt. Nicht nur die letzte.
Der Code steht im DragDrop-Envent des SynMemos:
Delphi-Quellcode:
...
smSender.SelStart := absPos;
smSender.SelEnd := absPos;
smSender.UndoList.BeginBlock;
Try
For i := 1 To Length(NewText) Do
smSender.ExecuteCommand(ecChar, NewText[i], Nil);
Finally
smSender.UndoList.EndBlock;
smSender.SetFocus;
End;
...
Ich dachte mit...
Delphi-Quellcode:
UndoList.BeginBlock;
ExecuteCommand...
UndoList.EndBlock;
...bekomme ich die Änderungen als eine Gruppe in die UndoList, die dann mit einem Undo alles zwischen BeginBlock & EndBlock rückgängig macht.
Nachtrag: Ich hoffe jetzt ist's verständlicher