关于解耦问题,如图:
![](https://box.kancloud.cn/36cc837ad57ec488893ab4b712460244_538x296.png)
TTabSheet 里有一个 TFrame , TFrame 里有一个 TButton 叫 BtnClose
现在要求 BtnClose 可以关闭并且释放掉 TTabSheet ,并且要引发 OnClose 事件。
这就涉及到一个问题,BtnClose 在自杀。标准的 TButton 可能还不会出问题,但漂亮的 cxButton 就有问题了。
我用了PostMessage方法,向 FrmMain 窗口发送自定义消息来解决这个“耦合纠缠”的问题。
本例所用到的知识点:
1. 通过类名字串,来创建类。FindClass 函数
2. "可视化继承",FormMain,TWorkFrameOne 都通过基类,在 IDE 中“拖”出来的。
3. 面向对象的经典写法之一。
4. 本例重点:解耦问题。
[本例源码下载](https://www.jianguoyun.com/p/DdTKV4QQxMf4BRiRoUQ), dephi xe8编写.
- 0.1 教程说明
- 0.2 delphi xe8 安装
- 0.2.2 XE 10.3.3 安装
- 0.3 delphi IDE 的非常必要的配置
- 0.4 调试中的异常处理
- 0.5 工程路径设置
- 0.6 开发工具界面切换成中文的问题
- 一、实用技巧
- 0.尝试为event取名叫伊文特
- 1.各种(变量)数据在内存中是什么样子的?
- 2
- 3
- 4.乱码问题
- 5
- 二、多线程
- 三、DLL相关
- 1.DLL中函数参数如何设计?
- 2.调用易语言DLL识别验证码
- 四、界面设计
- 1.关于解耦问题
- 2.登录功能设计
- 五、面向对象基础知识
- 1.窗口间传递值
- 3.避免又臭又长的裹脚布
- 2.扩展 TStringGrid , delphi 7 示例
- 六、初学者误区集锦
- 七 TList 集合
- 1.附加信息Pointer设计
- 2.用 TList 来建立组件间的联系
- 3.泛型 TList<T> 示例