Welcome

首页 / 软件开发 / Delphi / 基于Delphi的组件设计之概念

基于Delphi的组件设计之概念2008-02-02linzhengqun作为组件制作的开始,应该了解一些概念,我以为这些概念是非常重要的,将可以作为以后实践的理论基础。

一、组件的简要层次结构

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

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

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

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

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

二、属性

先看一个简单的属性定义:

TsomeObj=class
Private
FCount:integer;
Protected
Procedure SetCount(value:Integer);
published
Property count:integer read FCount write SetCount default 0;//属性定义
End;

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

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

Procedure TsomeBoj.SetCount(value:Integer);
Begin
If FCount<>value then
FCount:=value;
End;