CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

请问怎样关闭MDI子窗口?

楼主chenzhuo(睡到自然醒)2005-03-03 23:35:38 在 Delphi / 语言基础/算法/系统设计 提问

关闭MDI子窗口时关不了,子窗口变成了最小化... 问题点数:20、回复次数:15Top

1 楼chenzhuo(睡到自然醒)回复于 2005-03-03 23:40:09 得分 0

upTop

2 楼Kshape(C/C++初学者~~~~)回复于 2005-03-03 23:42:07 得分 10

在FORM窗体的ONCLOSE事件中加入下面代码:即   action   :=   caFree;  
  procedure   TFrmBase.FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
  begin  
          action   :=   cafree;  
  end;  
  Top

3 楼chenzhuo(睡到自然醒)回复于 2005-03-04 00:27:37 得分 0

可以关,但是重新打开即重新SHOW显示时会出错?为什么?Top

4 楼hjf8086(hjf)回复于 2005-03-04 09:08:05 得分 10

procedure   TFrmBase.FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
  begin  
          action   :=   cafree;  
          formchild:=nil;     //+上这句  
  end;Top

5 楼darkread(黑色阅读)回复于 2005-03-04 10:13:48 得分 0

你已经Free了,怎么还能再Show  
  TXXXForm.create一下吧Top

6 楼chenzhuo(睡到自然醒)回复于 2005-03-04 21:26:53 得分 0

create要参数的...加什么参数Top

7 楼caiso(十年磨一剑)回复于 2005-03-05 11:20:27 得分 0

顶一下Top

8 楼hsgrass37301(零点)回复于 2005-03-05 12:21:53 得分 0

//   假设:tform1是你的子窗体。在tform1的close事件里面应该有action   :=   cafree;这句正确  
  //   估计:原因是你设计mdi的时候主程序(菜单project-->view   source)已经将该子窗体创建  
  //   解决:将prj的source删除创建部份(如:Application.CreateForm(TForm1,   Form1);)删除,  
  //   在调用子窗体的部份输入类似如下的代码  
  var  
      F;   tform1;  
  begin  
      f   :=   tform1.create(application);    
  end;Top

9 楼real_name(*真名)回复于 2005-03-05 12:51:20 得分 0

关一个就  
  procedure   TFrmBase.FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
  begin  
          action   :=   cafree;    
  end;  
  关全部就  
  procedure   TFrmBase.FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
  begin  
          action   :=   cafree;  
          formchild:=nil;      
  end;  
  Top

10 楼Sunniness(逛追->理想)回复于 2005-03-05 13:04:04 得分 0

Self.replaece;  
  Top

11 楼zhangwei1437(zhangwei)回复于 2005-03-05 13:43:21 得分 0

如果是动态创建的必须先创建,如果是程序本身自己创建的就没事了Top

12 楼kuki84(天道酬勤)回复于 2005-03-05 17:24:42 得分 0

这是我MDI主窗口里的代码,自己看看  
   
  procedure   Tmain_form.OpenForm(FormClass:   TFormClass;   var   fm;   AOwner:TComponent);  
  var  
      i:   integer;  
      Child:TForm;  
  begin  
      for   i   :=   0   to   Screen.FormCount   -1   do  
              if   Screen.Forms[i].ClassType=FormClass   then  
              begin  
                  Child:=Screen.Forms[i];  
                  if   Child.WindowState=wsMinimized   then  
                        ShowWindow(Child.handle,SW_SHOWNORMAL)  
                  else  
                        ShowWindow(Child.handle,SW_SHOWNA);  
                  if   (not   Child.Visible)   then   Child.Visible:=True;  
                  Child.BringToFront;  
                  Child.Setfocus;  
                  TForm(fm):=Child;  
                  exit;  
              end;  
      Child:=TForm(FormClass.NewInstance);  
      TForm(fm):=Child;  
      Child.Create(AOwner);  
  end;  
   
  procedure   TMain_form.N11Click(Sender:   TObject);  
  begin  
  OpenForm(TFrm_PDatainput,Frm_PDatainput,self);  
  end;  
  Top

13 楼kuki84(天道酬勤)回复于 2005-03-05 17:25:53 得分 0

关闭时在子窗口onclose中  
  action:=caFree;Top

14 楼Breakc0de(学无止境)回复于 2005-03-05 20:32:44 得分 0

在子窗体   onclose   事件中:  
   
  begin  
  action:=cafree;  
  ChildWindow:=nil;   //ChildWindow为子窗体名称  
  end;Top

15 楼cyblueboy83(爱情白痴—电脑迷)回复于 2005-03-05 21:17:27 得分 0

呵呵,来慢了。Top

相关问题

  • MDI程序如何关闭子窗口???
  • 求教:如何关闭MDI子窗口
  • 如何关闭MDI窗口下的子窗口?
  • MDI窗口如何关闭所有的子窗口?
  • MDI窗口中如何在子窗口关闭是通知父窗口,???
  • 如何编码实现关闭mdi中的子窗口
  • 怎样在程序中关闭MDI中的所有子窗口
  • 关于MDI子窗口的关闭问题
  • 如何MDI中子窗口禁用“关闭”按钮?Help,Help
  • MDI程序如何打开和关闭子窗口

关键词

  • 代码
  • cafree
  • 窗体
  • mdi
  • tcloseaction
  • tform1
  • formclose
  • 创建
  • action
  • tobject

得分解答快速导航

  • 帖主:chenzhuo
  • Kshape
  • hjf8086

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo