お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"Undo"






 TMemoについて直前の動作のみUndoします(^○^)。
フォームにMemo、PopupMenuを配置します。

PopupMenuに項目を追加し以下のUndoコードを記述します。
procedure TForm1.Undo1Click(Sender: TObject);
begin
  With Memo1 do
  if Canundo then
  Undo;

end;

MemoのKeyDownイベントに以下のコードを記述します。
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  {アンドウ用にバッファをクリア}
  if (Shift=[ssCtrl]) then
  else
  With Memo1 do
  begin
    if Canundo then
    SendMessage(Handle, EM_EMPTYUNDOBUFFER, 0 , 0);
  end;
end;

 Memoにテキスト入力してPopupMenuに加えたUndo項目を実行すると
直前の動作のみUndoできます。
 邪道な方法であるかもしれませんが、とりあえず動きます (Win98上の
Delphi4で動作)。


                 
                                     99/08/23(月) 14:47 駿河のダルマ(RXP02473)

Original document by 駿河のダルマ    氏 ID:(RXP02473)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum