procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); var i:LOngint; begin if DDC.IsEdited then begin i:=MyMsgBox('文件被修改是否保存','提示',6); case i of IDYES: begin SaveNowClick(nil); CanClose:=true; end; IDNo: begin CanClose:=true; end; IDCANCEL: begin CanClose:=false; end; end;//case end;
end;
function MyMsgBox(const ACaption,ATitle:string;Option:integer):integer; begin case Option of 0: Result:=MessageBox(Application.Handle, PChar(ACaption), PChar(ATitle), MB_OK+MB_ICONINFORMATION);
7: Result:=MessageBox(Application.Handle, PChar(ACaption), PChar(ATitle), MB_ABORTRETRYIGNORE+MB_ICONQUESTION+MB_DEFBUTTON3); end; {Value Meaning IDABORT Abort button was selected. IDCANCEL Cancel button was selected. IDIGNORE Ignore button was selected. IDNO No button was selected. IDOK OK button was selected. IDRETRY Retry button was selected. IDYES Yes button was selected.} end;
----------------------------------------------
看不懂,CANCLOSE是哪里来的,我用MESSAGEDLG不行吗? 代码如下: procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if messagedlg('确实要关闭吗?',mtwarning,mbokcancel,0)= mrcancel then {这里怎么写?} end;
----------------------------------------------
-