Delphi5 VCL结构.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Delphi5 VCL结构

概述 TObject TPersistent TComponent TControl TWinControl TScrollingWinControl TGraphicControl TCustomControl 概述 Delphi5是一个真正面向对象的编程工具,它提供了一个符合工业标准的元件库(VCL)。 VCL(Visual Component Library的缩写)是Delphi的核心。VCL是完全面向对象的,VCL中的所有对象都存在着继承与被继承的关系。它们的继承关系如下: 最顶层是TObject,它是一切对象的祖先类。 TPersistent是TObject的下一级继承者,它是一个抽象类,提供了对象之间相互赋值和读写流的能力。 TComponent是TPersistent的继承者,它是VCL中所有元件的祖先类,TComponent定义了所有元件最基本的行为。 尽管所有元件都是从TComponent继承下来,但直接继承的只有几个非可视的元件如TTimer等,其他元件则是从TComponent的下级TControl继承下来的。从TControl继承下来的元件是可视的,可视元件也称为控件。 TWinControl和TGraphicControl这两个类都是从TControl继承下来的,从TWinControl继承下来的主要是按钮、对话框、列表框等有窗口句柄的控件,这些控件占用Windows的资源,并且允许用户输入。而从TGraphicControl继承下来的控件例如TLabel、TSpeedButton等则没有窗口句柄,不占用Windows的资源,也不能接受键盘的输入;使用这一类控件的好处在于节约系统资源。 VCL的面向对象还体现在它的可扩展性,可以选择其中一个元件作为祖先类,派生出一个新的元件,并把新创建的元件加入到VCL中。 TObject TObject是VCL中所有对象的基类,它定义了操纵对象的基本方法。其中,有的是类方法,用于返回对象的类型信息;有的是虚拟方法,能够在派生类中重载;有的仅用于Delphi5的IDE自身调用,而不能被程序调用。TObject没有数据成员。 Create构造函数 声明:constructor Create; 创建对象实例,并初始化实例数据,返回指向创建实例的一个指针。 如果该函数产生异常,系统将自动调用析构函数来释放已申请的资源。 Destroy析构函数 声明:destructor Destroy; virtual; 释放对象实例。推荐调用Free方法来释放对象示例,Free方法能够判断对象实例是否已经释放,如果没有释放,调用Destroy方法来释放,因此更安全。 ClassInfo函数 声明:class function ClassInfo: Pointer; 这个类方法返回一个指针,指向对象的运行期类型(RTTI)。运行期类型信息一般由Delphi的IDE使用,应用程序一般不与它打交道。 ClassName函数 声明:class function ClassName: ShortString; 这个类方法返回一个对象实例的类名。可以用基类的变量来引用派生类的对象实例。用基类的变量来调用ClassName()时,返回的是派生类的类名,而不是变量本身的类名。 ClassNameIs函数 声明:class function ClassNameIs(const Name: string): Boolean; 这个类方法判断对象是否是指定的类型,若是,返回True,否则,返回False。 ClassParent函数 声明:class function ClassParent: TClass; 这个类方法返回类的祖先。对于TObject来说,结果是nil,因为TObject已经处于最顶层,没有“父”。应用程序一般不要直接调用此方法。 ClassType函数 声明:function ClassType: TClass; 这个函数用于判断一个对象的类型,进而获取类的有关信息。 DefaultHandler过程 声明:procedure DefaultHandler(var Message); virtual; 如果Dispatch()没有找到处理某个消息的方法,就会调用DefaultHandler()。派生类可以重载这个方法,以便对所有的消息进行默认处理。 Dispatch过程 声明:procedure Dispatch(var Message); 这个过程用于调用一个消息句柄,至于究竟调用哪个句柄,有Message参数指定的消息来决定。如果在对象中没有找到该消息的句柄,Dispatch()就从基类中查找;如果一直到最顶层还没有找到,就调用DefaultHandler()。 Free过程 声明:

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档