欢迎光临
我们一直在努力

类和对象_delphi教程

建站超值云服务器,限时71元/月

 

Delphi在很大程度上采用了面向对象的开发思路,所以,在采用delphi作为开发工具时,class和对象就显得 尤为重要!


对class的明确定义是:对具有相同特征的一类事物所做的归纳。作为一个非常抽象的概念,我们可以对类 这个字举例来理解:在校的学生,虽然每个人都会有不同的情况,还有小学生、中学生、大学生之分,男、 女生之分,但是他们有一个共同点,都处于求学阶段。我们就可以把他们归纳为“学生类”,而每一个学生 就是学生类的对象(有一点需要说明,在很多书中,有实体或者实例这种说法,这里实体或者实例也就是提 到的对象)。


而类的属性指的是类的静态特征,作为上面提到的“学生类”,我们说他具有性别、年龄、学号、班级、学 校名称、各科考试成绩等等特征,而这些,也就是学生类属性。


类的方法即类的动态特征,即属于这一类的事物在接收到某种消息或命令时做出的反应,比如学生上课就是 学生类的一个方法,而这个方法的触发就是上课铃响这一个消息的产生。


类的庞大作用还体现在它的无限继承中。作为上面提到的学生类,我们以教育程度来分,不难看出,还可以 分出大学生类,中学生类,小学生类,而他们比学生类这个范围更具体,学生类所具有的属性他们每一个都 具有。也就是说,他们都是从学生类继承而来,在学生类的基础上更准确的进行了划分。在这儿,学生类作 为父类,大学生类、中学生类、小学生类等作为子类出现。当然,在学生类以上,也有更抽象的类。比如, 人类是所以具有人类特征的归纳,学生类比人类更具体,在这个地方,人类作为父类,学生类作为子类。从 这儿可以看出,我们可以根据我们的需要,定义一个适合我们使用的类而不需要每一个属性、方法都去写出 来,只要简单的继承父类就可以了。(通常所说的派生即是父类对子类的说法:父类派生子类).


VCL类库


delphi面向对象的基础就是类,要真正了解和提高delphi的知识水平,我们有很大的必要弄清楚delphi为我们 提供的vcl(类库)。


Delphi的层次结构如下:



从图中我们可以看出,Tobject是delphi系统中的所有类的祖先类,其他每一个类都是他的字类。 根据上面的 层次关系,我们可以看到delphi中每一个类的继承和派生,对我们使用自定义类是非常必要的。下面主要介 绍部分类:


Tpersistent类:


它由Tobject祖先类直接派生。需要指出的是,Tpersistent类成员都能够进行流的操作(对数据以数据流的形 式传递)


常用方法:


Assign() 一个组件把另一个组件相关的值赋给自己;


AssignTo() 与Assign()相反,在Tpersistent中申明为私有,派生类必须实现他的定义;


Tcomponent类


由Tpersistent类直接派生,它的对象的特性:在设计期间其属性可以由Object inspector来控制,能够拥有其 他组件。


Tcomponent类可派生可视组件和非可视组件,如Tbutton和Tmenu


Tcomponent类常用属性:


Owner:设置或读取组件拥有者;


CompenentCount:读取或设置组件的拥有数目;


ComponentIndex:读取组件在其拥有者列表中的位置(从0开始);


Components:他为一个数组,包含其拥有的组件列表(从0开始); Name:设置和读取组件名称;


Tcomponent类常用方法


Create:构造对象;


Destroy:释放对象;


Getparentcomponent:取得父组件,没有则返回nil;


HasParent:判断组件是否有父组件;


InsertComponent:增加一个组件,由调用该方法的组件所拥有;


RemoveComponent:删除一个自己拥有的组件;


Findcomponent(str:string):根据给出的组件名查找组件;


Tcontrol类


应用:一般用于可视组件


它的属性包括了本身的位置信息,尺寸信息,外观属性等,如:


Top,Left,Width,Height,Visible,enable,text,caption等;


它引入了标准事件如:


Onclick,OnDblclick,OnmouseDown,OnmouseMove等


需要说明的是,在delphi 中,不能创建它的派生类,只能通过它已经存在的派生类TwinControl和 TgraphicControl派生;


TwinControl类


TwinControl类:标准窗口控件由它派生;


它的对象有窗口句柄(指向对象的指针),能够接受输入焦点,能够成为其他控件的父;


在应用程序开发中,一般使用TwinControl的派生类;


TwinControl类的常用属性:


Brush:用于绘制控件外形;


Controls: 包含控件的所有子控件(值为一个数组);


ControlCount:读取子控件的数目;


Handle:读取TwinControl类对象的句柄;


Showing:设置或读取对象是否可见;


Tabstop:设置用户是否能够用TAB键移动焦点;


Taborder:设置对象在其父列表中的序号(从0开始);


TgraphicControl类


本类控件没有窗口句柄,不能接收输入焦点,同样也不能是其他控件的父;


TcostomControl类:


它的派生类常作为自定义控件的基类

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 类和对象_delphi教程
分享到: 更多 (0)