代码片段 · 2015年5月17日

Delphi中为TFrame添加类似于TForm的OnShow OnHide事件

TFrame是一个代码和UI复用、模块划分的好东西。尤其在编写Matreo风格应用的时候,更是离不开它。但TFrame也有不尽如人意的地方。比如:它在软件运行时即加载,所以无法像Form的Create和Destroy那样在UI创建的时候才动态创建和销毁自定义对象;默认情况下也不存在OnShow和OnHide函数,这样带来诸多不便。
笔者以前都是通过继承一个TFrame类,在自定义类中定义两个虚函数的方式来实现这个功能,但缺点是必须在调用Tframe和隐藏它的时候手工触发,有些麻烦。下面的方法使用了消息机制来实现OnShow和OnHide功能。