Показать сообщение отдельно
  #2  
Старый 04.11.2021, 06:07
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,031
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну не знаю, у меня работает (Delphi 10.2):
Код:
procedure TForm1.acEditInsertDateTimeExecute(Sender: TObject);
var
  S : String;
begin
  S := FormatDateTime('yyyy-mm-dd hh:nn:ss',Now);
  SendTextMessage(Memo1.Handle, EM_REPLACESEL, 1, S);
end;

procedure TForm1.acEditUndoExecute(Sender: TObject);
begin
  Memo1.Undo;
end;

procedure TForm1.ActionList1Update(Action: TBasicAction; var Handled: Boolean);
begin
  acEditUndo.Enabled := Memo1.CanUndo;
end;
Только оно хитро работает. Как бы оно отменяет последнее действие, а второе использование команды отменяет отмену.
Если хочется чего-то более навороченного (например, отмену нескольких шагов, отмену после сохранения и т.д.), то придется самому писать.
Ответить с цитированием