質問させて頂きます。
実行中、フォームを閉じる×ボタンクリックした時、「本当に閉じますか?」と確認のメッセージを表示させて、もしキャンセルを押されたら閉じるのをキャンセルする、という風にしたいのですが、やり方が今一分かりません。
FormのOnCloseでMessageBoxを使っても、キャンセルを押しても閉じられてしまうので駄目でした。
どうすればよいのでしょうか?ご教授お願いします。
CanCloseをFalseにします
ちなみにこれはテキストエディタGoopadのソースの一部を少し変えたものです。
だいぶ昔に書いたので汚くてわかりにくいですが。
procedure TMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
stop:boolean;
begin
stop:=false;
canclose:=true;
if MainEdit.Modified then
//MainEditというのはメモコンポです
begin
while stop=false do begin
case MessageDlg('編集中のファイルを保存しますか?',
mtConfirmation,[mbYes,mbNo,mbCancel],0) of
id_Yes: stop:=Filesave;
//FileSaveってのは保存に成功するとTrueを返す関数
id_No: stop:=True;
id_Cancel: begin canclose:=false;stop:=True; end;
end;
end;
end;
if CanClose and Application.Active then
begin
{設定の保存}
end;
end;
わざわざサンプルまでありがとう御座います。おかげ様で思い通りの動作になりました。
TtPIPICHさん、ご教授ありがとう御座いました。
ツイート | ![]() |