是这样的:
在点击主窗体右上角的X(关闭)按钮时,Showmodal一个确认对话框(有两个按钮:确定、取消)。
我想实现的功能是:点击确认---结束整个程序,点击取消——放弃退出整个程序,点击该对话框右上角的X——放弃退出整个程序。
目前的问题是:点击上述三处皆会退出整个程序。 有请高手指点。不胜感激!!
在点击主窗体右上角的X(关闭)按钮时,Showmodal一个确认对话框(有两个按钮:确定、取消)。
我想实现的功能是:点击确认---结束整个程序,点击取消——放弃退出整个程序,点击该对话框右上角的X——放弃退出整个程序。
目前的问题是:点击上述三处皆会退出整个程序。 有请高手指点。不胜感激!!
canclose:=false;非可以关闭你可以在用户在showodal中所按的按扭来进行相应的选择操作,,,,祝:身体健康,答案和分数同样重要!!
begin
if messagedlg('是否关闭',mtinformation,[mbok,mbcancel],0)=mrok then action:=canone else application.Terminate;
end;
if MessageDlg('Close application ?', mtConfirmation,
[mbYes, mbNo], 0) = mrYes then
Action := caFree
else
Action := caNone;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Application.MessageBox('请确认是否退出程序?','提示',
MB_OKCANCEL+MB_ICONQUESTION)
<> ID_OK then Action := caNone; // 不点OK就不退出
end;
它说canclose未定义。
我也觉得没有这个属性!
begin
if MessageDlg('是否退出?',mtConfirmation,[mbyes,mbno], 0) <> mryes then
CanClose := false;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if messagedlg('是否关闭',mtinformation,[mbok,mbcancel],0)<>mrok then action:=canone else application.Terminate;
end;
if MessageDlg('Close the form?', mtConfirmation,
[mbOk, mbCancel], 0) = mrCancel then
CanClose := False;
end;
同意用Application.MessageBox 而messagedlg不是中文的,我认为尽量用Application.MessageBox,它的风格更人性化
我一般是这样做的:在Form的OnClose事件添加:
IF Application.MessageBox('真的要退出吗?请确认.','提 示!',MB_OKCANCEL+MB_IconInformation)=IDOK THEN
Begin
Application.Terminate;
End;
见 panyong2002() 兄回帖
方法二:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if messagedlg('是否关闭',mtinformation,[mbok,mbcancel],0)=mrok then
CanClose:=True
else CanClose:=False;
end;方法三:
见 sysu(死树)的回帖
if Application.MessageBox('请确认是否退出程序?','提示',
MB_OKCANCEL+MB_ICONQUESTION)
<> ID_OK then Action := caNone; // 不点OK就不退出