标题:delphi 消息机制学习笔记
【程序编程相关:通过odbc,c#连接pg数据库】
关键词:delphi 消息机制 作者:dreamtheater 难度:普通[] 中等[x] 高级[] http://dreamtheater.yeah.net e-mail:notexpad@163.com完成日期:2004年08月12日 【推荐阅读:PowerPoint、Excel中自定义】
最近几天又将李维«inside vcl»书中关于 delphi 中 windows 消息机制的实现看了一遍,这是第二遍了,本来看第一遍时已经完全看懂了,但没做笔记,害得我又看了一遍,这回下定决心写一个笔记.与此同时,我在网上游荡时幸运地看到了两篇论述 delphi 消息框架的文章,某些部分分析得相当深入,非常好的 delphi 消息机制总结.这下一来又不想写笔记了,但后来一琢磨他们这些文章写得虽然好,但毕竟不是自己写的,要想理清消息机制这条线,非要自己动笔写一下不可, 能将你认为懂的东西表述出来那才是真懂.在这里我不得不多说两句,李维的书中很多地方我认为写得并不是很好,有时某个主题虽然用了n长的篇幅去写,好像也没有上面的文章中某些部分写得透彻,例如 对 makeobjectinstance 这个牛x函数表述我就认为写得一点都不好,所以不要老崇拜所谓的老大,呵呵. 【扩展信息:DB2个人版(Linux)安装 】前言 在文中很多地方我会写得特别简单,因为更详细地描述在李维的书中以及我参考的文章里已经写得很清楚了,为此我不会再费笔墨,只是将整个流程串一下,并写几个有价值的范例.正文 永远记住,无论你是用 sdk 还是借用 vcl 来创建窗口,都要遵循 windows 的游戏规则,即先注册窗口类,然后再创建窗口实例,在消息循环中写实现代码.你还要知道 windows 已经为了我们预注册了多个窗口类,例如“edit”.“combobox”,这时候我们要做的就是直接创建这些窗口,无需注册窗口类了;在 delphi 中这一切更简单了,vcl 全部为你做好了,你只需简单地在设计窗体上拖动你要的控件再写实现代码就可以了,是不是很 cool?一,窗口的创建 vcl 中,具有句柄(handle) 属性的真正窗口控件全部继承自 twincontrol,那就从 twincontrol 的创建开始说起. vcl 中窗口的建立不是按照我们想象中的流程创建的,即先把所有的窗口都创建好,然后再调用,而是在需要时才创建.可能你还不能理解我这句话的意思,慢慢看.继承自 twincontrol 的窗口控件都会有 handle 属性,当代码中需要 handle 值时,通过该属性的 getter 调用 twincontrol.handleneeded 来获得句柄,这时如果窗体已经建立,直接返回句柄,否则先创建窗口实例,再返回句柄,因此窗口创建是在 twincontrol.handleneeded 中实现的.borland 这样做的目的我想是最大程度地来节省系统资源吧.... 下一页