设个Boolean变量,在Form的OnClose事件里写退出前的提示代码,
截获到WM_QUERYENDSESSION消息后设全局变量为False
private
{ Private declarations }
procedure WMQUERYENDSESSION(var Msg: TWMQUERYENDSESSION); message WM_QUERYENDSESSION;
public
{ Public declarations }
end;
var
Form1 : TForm1;
implementation
{$R *.DFM}
var
IsShow : Boolean = True;
procedure TForm1.WMQUERYENDSESSION(var Msg: TWMQUERYENDSESSION);
begin
IsShow := False;
inherited ;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Application.MessageBox('是否退出!', '提示', mb_yesno + mb_iconquestion) = mrNo then
Action:=caNone;
end;