其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

基于Delphi的组件设计之概念[1]


发布日期:2023年09月23日
 
基于Delphi的组件设计之概念[1]

作为组件制作的开始应该了解一些概念我以为这些概念是非常重要的将可以作为以后实践的理论基础

组件的简要层次结构

一般情况下VCL的组件可以从Tcomponent为开始其最明显的特征就是它的属性可以在设计时通过对象察看器来操纵另外他还能拥有其他组件

从Tcomponent下分出非可视组件和可视组件

非可视组件如TOPenDialogTTimerTTable等这些组件因为继承自Tomponent所以也就继承了在设计时可以被操纵的特性

可视化组件始自TControl是它引入了可视化属性和方法使继承自它的类都有了这些可视化特性

TControl又分出两类组件类型从TWinControl(窗口控件)自下的控件和从TGraphicControl(图形控件)自下的控件继承自TWinControl的控件将Windows控件进行封装所以拥有Windows控件的很多特性比如可以得到焦点有唯一的句柄用户可以通过发送消息与这些控件进行交互等而继承自TGraphicControl的控件也是可见的但没有句柄可以称之为图形控件比如TLabelTBevel都是Delphi画出来的并不占用系统资源

属性

先看一个简单的属性定义

TsomeObj=class

Private

FCount:integer;

Protected

Procedure SetCount(value:Integer);

published

Property count:integer read FCount write SetCount default ;//属性定义

End;

该属性从私有成员FCount读出值而靠SetCount方法设置值到私有成员FCount

属性的优势在于可以很直观进行读写而又不同于私有成员因为属性可以通过写访问方法来保护私有成员

Procedure TsomeBojSetCount(value:Integer);

Begin

If FCount<>value then

FCount:=value;

End;

其中属性定义中的Default并不是默认值(即对象察看器显示的值)默认值要在组件类的构造函数中设定而Default有这样的作用决定DFM文件中是否要保存该属性的值比如上面为Default 即当该属性值为则该属性不会被保存到DFM中如果该属性值不为则该属性会被保存到DFM中另外属性定义还有一个关键字为

NoDefault设置了这个关键字比如

Property count:integer read FCount write SetCount NoDefault;

则无论它的值是什么都会被写到DFM文件中

[] [] []

               

上一篇:用Delphi实现BP机、手机短讯 精华篇[1]

下一篇:基于Delphi的组件设计之概念[2]