|
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
|