熬之滴水穿石:Delphi曾经的利器(6)

                                                                  10--贯穿始终的Application
对于 TApplication,最初的印象莫过于在工程文件里,看到了 Application.create类似的方法。当时并不在意,当对VCL开始了解时,发现这是一个设定并引导你的程序中的窗口非常重要的类。 Application类其实也是从 TComponent类继承袭来的,但它又不是一个控件,但它又潜移默化的管理着所有的控件。但我觉得 Application实际上是管理的是窗口。该类里有FHandle参数,该参数就是一个窗口句柄。实际上在工程文件里,我们看到 Application.createform的代码,这些代码是我们实际编写的窗口创建过程,其实在这些窗体之前, Application实际上已经建立了一个看不见的窗口,这个窗口会以一个消息循环接受消息和派发消息,来处理 Application.createform中的那些窗体。 Applcation实际上就是一个全局对象,这个工程生成exe程序时,其句柄就是存储在该Application的句柄中的。

Application的初始化的过程也比较复杂,在这里并不作详细的描述了。我只是像结合我们开发的方式,说说我对于这个Application的认识,它最主要的功能就是为窗口变成建立主窗体,这个窗体便是我们开发中的主窗体了。当调用Application.createform方法时,我们创建的form(窗口)实际上是从TForm类继承下来的派生类,我们追溯到上,form实际上是从TWinControl继承下来的,所以一切的方法都是从wincontrol的create方法开始的。在该方法中最为重要和核心的方法莫过于就是调用了 classes.makeobjectinstanced的方法来创建窗口的回调了,当 Application创建了主窗体之后,应用程序也就开始执行了。这时候触发窗体上的相关控件时,这些信息都会让窗口回调主窗体的MainWndProc的方法,该方法就是处理消息的一个函数。一个TCustomForm的类,其实该类下的Wndproc方法就是为Delphi的RAD量身定做的,并为这些对象维持运作的基本代码,这就是让Delphi程序员为什么是聪明的了,因为这些代码即便在什么代码都不写的情况下,也能生成代码并且自动处理消息了。所以VC窗口的程序员的烦恼,作为Delphi程序员是没有的,但是理解的深度,如果自己不深度挖掘肯定是没法与VC程序员的比的。
                                                                                (未完待续......)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值