DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: a332452295
今日帖子: 0
在线用户: 0
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 guxang (※西门吹雪※) ★☆☆☆☆ -
普通会员
2004/2/15 14:45:10
标题:
在FORM的CLOSE事件中中断关闭应该怎么写 浏览:1488
加入我的收藏
楼主: 即用MESSAGEDLG判断是否关闭,如不关闭则中断关闭过程.
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/2/15 14:49:36
1楼: 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);

 1:  Result:=MessageBox(Application.Handle, PChar(ACaption),
         PChar(ATitle), MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON2);

 2:  Result:=MessageBox(Application.Handle, PChar(ACaption),
         PChar(ATitle), MB_OK+MB_ICONERROR);

 3:  Result:=MessageBox(Application.Handle, PChar(ACaption),
         PChar(ATitle), MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON1);

 4:  Result:=MessageBox(Application.Handle, PChar(ACaption),
         PChar(ATitle), MB_YESNOCANCEL+MB_ICONQUESTION+MB_DEFBUTTON1);

 5:  Result:=MessageBox(Application.Handle, PChar(ACaption),
         PChar(ATitle), MB_YESNOCANCEL+MB_ICONQUESTION+MB_DEFBUTTON2);

 6:  Result:=MessageBox(Application.Handle, PChar(ACaption),
         PChar(ATitle), MB_YESNOCANCEL+MB_ICONQUESTION+MB_DEFBUTTON3);

 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;
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 guxang (※西门吹雪※) ★☆☆☆☆ -
普通会员
2004/2/15 14:54:59
2楼: 看不懂,CANCLOSE是哪里来的,我用MESSAGEDLG不行吗?
代码如下:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if messagedlg('确实要关闭吗?',mtwarning,mbokcancel,0)= mrcancel then
{这里怎么写?}
end;
----------------------------------------------
-
作者:
男 guxang (※西门吹雪※) ★☆☆☆☆ -
普通会员
2004/2/15 14:57:22
3楼: 啊,会了会了
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行67.38281毫秒 RSS