All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
JS技巧之showModelessDialog()使用详解_JavaScript技术_编程技术
数据库基础:SQL导出到MySQL_[SQL,Server教程]
不经保存,直接读取上传文件的内容_[Asp.Net教程]
PHP实例:用PHP程序实现随机广告图片显示_[PHP教程]
SQL Server视图使用中4个限制条件_[SQL Server教程]
MS-SQL数据库开发常用汇总_[SQL,Server教程]
C#捕捉摄相头的数据流_[Asp.Net教程]
动态网页制作PHP中Session的概念_php资料_编程技术
PHP实例:常用的数值判断函数_php资料_编程技术
GridView,实现服务器端和客户端全选的两种方法_[Asp.Net教程]
Reading number is top 10 pictures
Lewd,it is too lewd.
你是左脑型还是右脑型
NeedWallpaper12
The money of more than 100 countries and regions17
美丽的少女1
Fury xp desktop theme
Sora aoi possession photo1
The money of more than 100 countries and regions5
史上最大的哺乳动物迁移
The real super beauty14
Download software ranking
卡丁车单机版
Sora aoi 120 minutes
Boxer's Top ten classic battle8
功夫熊猫2(下集)
Such love down(擒爱记)
徐若瑄成名作“魔鬼天使”
Tram sex maniac 2 (H) rar bag9
网络管理员第三版
dreamweaver8中文版
Tram sex maniac 2 (H) rar bag6
aaa published in(发表于) 2014/7/19 0:12:56 Edit(编辑)
delphi组件中常用的事件

delphi组件中常用的事件

delphi组件VCL运行机制|TObject对象使用实例技巧

组件运行机制

本节将通过分析VCL 组件中的两个典型对象:TObject 和TApplication,向读者介绍VCL 库的核心知识,剖析VCL 的代码的执行。本节内容有一定难度,需要读者仔细体会。

TObject对象

   因为所有的VCL 子类,都抽象自TObject 类,所以首先向读者介绍一下TObject 类,TObject 的声明如下:

 TObject = class

constructor Create;

procedure Free;

class function InitInstance(Instance: Pointer): TObject;

procedure CleanupInstance;

function ClassType: TClass;

class function ClassName: ShortString;

class function ClassNameIs(const Name: string): Boolean;

class function ClassParent: TClass;

class function ClassInfo: Pointer;

class function InstanceSize: Longint;

class function InheritsFrom(AClass: TClass): Boolean;

class function MethodAddress(const Name: ShortString): Pointer;

class function MethodName(Address: Pointer): ShortString;

function FieldAddress(const Name: ShortString): Pointer;

function GetInterface(const IID: TGUID; out Obj): Boolean;

class function GetInterfaceEntry(const IID: TGUID): PInterfaceEntry;

class function GetInterfaceTable: PInterfaceTable;

function SafeCallException(ExceptObject: TObject;

ExceptAddr: Pointer): HResult; virtual;

procedure AfterConstruction; virtual;

procedure BeforeDestruction; virtual;

procedure Dispatch(var Message); virtual;

procedure DefaultHandler(var Message); virtual;

class function NewInstance: TObject; virtual;

procedure FreeInstance; virtual;

destructor Destroy; virtual;

end;

    从TObject 的声明中可以看出,TObject 包含了诸如实例初始化、实例析构、RTTI、消息分发等相关实现的方法。在TObject 类中,有一个Dispatch()方法和一个DefaultHandler()方法,它们都是与消息分发机制相关的。Dispatch()负责将特定的消息分发给合适的消息处理函数。首先它会在对象本身所属的类中寻找该消息的处理函数,如果找到,则调用它;如果没有找到而该类又覆盖了TObject 的DefaultHandler(),则调用该类的DefaultHandler();如果两者都不存在,则继续在其基类中寻找,直至寻找到TObject 这一层,而TObject 已经提供了默认的DefaultHandler()方法。下面将分几部分详细讲解TObject 封装组件的原理。

TObject 提供了最基本的消息分发和处理的机制,而VCL 是在TControl 中才开始对Windows 系统消息封装的,当Windows 向应用程序发送消息时,首先接收到消息的是Control 类,然后由Control类将消息转换成VCL 的事件,进行进一步的处理。下面以鼠标消息变鼠标事件的过程来解释系统消息是如何变成事件的。




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.