子窗体的打开和关闭

子窗体的打开和关闭

ID:10018721

大小:153.00 KB

页数:19页

时间:2018-05-21

子窗体的打开和关闭_第1页
子窗体的打开和关闭_第2页
子窗体的打开和关闭_第3页
子窗体的打开和关闭_第4页
子窗体的打开和关闭_第5页
资源描述:

《子窗体的打开和关闭》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Delphi编程资料精华汇总标题:父窗体fsmDIForm子窗体fsMDIChild内容:设置父窗体Formstyle为fsmDIForm 子窗体为fsMDIChild1.   如果你需要你的子窗体就是设计时的那个子窗体,     用Application.CreateForm(TFormChild,FormChild);创建该子窗体,则再使用FormChild.Close;时应该不会报错。     2.   MDI子窗体的默认关闭操作为最小化,想让它真正关闭,在其OnClose中写Action:=caFree;     

2、3.   如果你的子窗体只是用TFormChild类创建的实例(用TFormChild.Create(Application);或TFormChild.Create(self);创建的),则一般不能用FormChild来引用它(如它是全局变量等情况例外)。可以考虑以下几个方法:     //关闭最早建立的实例     MainForm.MDIChildren[MainForm.MDIChildCount-1].close;     //关闭最晚建立的实例     MainForm.MDIChildren[0].close;

3、     //关闭当前活动实例     MainForm.ActiveChild.close;     //关闭所有子窗体     for   i:=0   to   MainForm.MDIChildCount-1   do       MainForm.MDIChildren[i].close;Delphi MDI应用程序高级技巧三则(一)2008-07-28 07:47本文介绍几个Delphi MDI应用程序的编程技巧,虽然纯属技巧,但是本文的方法在正常编程时,通常会被编译器认为是错误的或是违背编程环境缺省许可值的。

4、不过有时为了一些特殊的用途或特殊的视觉效果,按下述的方法一试,可以在明知不可违而违之的情况下,得到很好的结果。下述各示例均在Delphi6、Windows2000下完成,对涉及的控件命名是任意的,仅为方便说明问题。一、子窗口的隐藏 在Delphi编程环境下,MDI子窗口在运行期间可以动态地被创建和销毁,但是不能够被隐藏,如果试图通过Visible属性或Hide方法隐藏子窗口,编译器将报出“Cannot hide an MDI Child Form.”的错误提示!如果某个子窗口中承载了很多要保留的数据而不能销毁,但又暂时不想

5、要它出现在屏幕上时,最好的方法就是将其隐藏,待需要时再将其显示出来则可。下面两种方法可以隐藏和显示子窗口,并避开了编译器的报错提示。1) 使用Windows API函数ShowWindow(),示例代码如下:ShowWindow(ChildForm.Handle, SW_HIDE);     // 隐藏子窗口ShowWindow(ChildForm.Handle, SW_RESTORE); // 显示子窗口说明:使用Windows API直接隐藏子窗口,其子窗口的Visible属性和其显示状态是不一至的。当子窗口不可见时,

6、其Visible属性可能仍然是True。       2) 直接设置子窗口的Visible属性此时,首先要在需要隐藏的子窗口中重载TCustomForm的VisibleChanging方法,并在其实现过程中屏蔽掉继承代码,否则编译器将在隐藏子窗口时报错。然后就可以直接设置这个子窗口的Visible属性为False或True来隐藏或显示它了。示例如下:a) 子窗口部分…type19TChildForm = class(TForm)private    procedure VisibleChanging; override;/

7、/重载    …end;…procedure TChildForm.VisibleChanging;begin{使用组件属性隐藏子窗口时,需要重载此过程,并且不执行任何继承代码,否则将报错}//inherited; 不能执行此语句!end;b) 隐藏或显示子窗口ChildForm.Visible:=false;//隐藏子窗口ChildForm.Visible:=true; //显示子窗口说明:直接使用组件属性隐藏或显示子窗口,子窗口的Visible属性和其显示状态是一至的。笔者认为这样做要安全一些。 子窗口分布控制2008

8、-07-28 07:531.叠窗口. Form1.Cascade; 2.横向平铺窗口 Form1.TileMode := tbHorizontal; Form1.Tile; 3.纵向平铺窗口 Form1.TileMode := tbVertical; Form1.Tile; 4.重排图标 Form1.A

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。