Delphi MDI 应用程序高级技巧三则
Delphi MDI 应用程序高级技巧三则(一)
http://www.netgocn.com
本文介绍几个 Delphi MDI 应用程序的编程技巧,虽然纯属技巧,但是本文
的方法在正常编程时,通常会被编译器认为是错误的或是违背编程环境缺省许可
值的。不过有时为了一些特殊的用途或特殊的视觉效果,按下述的方法一试,可
以在明知不可违而违之的情况下,得到很好的结果。
下述各示例均在 Delphi6、Windows2000 下完成,对涉及的控件命名是任意
的,仅为方便说明问题。
一、子窗口的隐藏
在 Delphi 编程环境下,MDI 子窗口在运行期间可以动态地被创建和销毁,
但是不能够被隐藏,如果试图通过 Visible 属性或 Hide 方法隐藏子窗口,编译
器将报出“Cannot hide an MDI Child Form.”的错误提示!
如果某个子窗口中承载了很多要保留的数据而不能销毁,但又暂时不想要它出现
在屏幕上时,最好的方法就是将其隐藏,待需要时再将其显示出来则可。下面两
种方法可以隐藏和显示子窗口,并避开了编译器的报错提示。
1) 使用 Windows API 函数 ShowWindow(),示例代码如下:
ShowWindow(ChildForm.Handle, SW_HIDE); // 隐藏子窗口
ShowWindow(ChildForm.Handle, SW_RESTORE); // 显示子窗口
说明:使用 Windows API 直接隐藏子窗口,其子窗口的 Visible 属性和其显
示状态是不一至的。当子窗口不可见时,其 Visible 属性可能仍然是 True。
2) 直接设置子窗口的 Visible 属性