当我们已经理解属性跟事件后,下一步就需要探讨下组件。透过把TDate类别转换为组件来简单的了解下这个主题。
首先,必须从TComponent类别来衍生出我们的新类别,这里不再从TObject来衍生了。
type
TDate=class(TComponent)
...
public
constructor Create(AOwner:TComponent);overload;override;
constructor Create(y,m,d:Integer);reintroduce;overload;
end;
帮这个类别加入一个建构函数,把默认的组件建构函数重载,以提供一个合适的数据初始化。因为有一个多载的版本,也需要为它用上reintroduce这个关键词,以避免编译程序显示警告讯息。新的建构函数就简单的设定了今天的日期,在呼叫基础类别的构建函数之后:
constructor TDate.Create(AOwner:TComponent);
var
Y,D,M:Word;
begin
inherited Create(AOwner);
//today..
fDate:=Date;
end;
完成到这里之后,需要在撰写这个新的组件类别的单元文件里面,加入一个名为Register的过程,这个过程的第一个字母R务必大写,以免它被误认。加入这个过程则是IDE要新增一个组件的规范。简单的宣告这个过程,它不需要任何参数,在这个单元文件的interface区段宣告,然后再于implementation区段里面撰写程序代码:
procedure Register;
begin
RegisterComponents('Sample',[TDate]);
end;
这个程序代码把新的组件加入到工具盘的Sample分页当中,如果当时没有这个分页,系统就会自动新增这个分页。
最后一个步骤就是把这个写好的组件安装好,我们得建立一个套件(Package),这是一种特殊的项目,专门用来安装组件用的。只需要先点选IDE的File->New->other menu选单项目,打开新增项目的对话窗口,然后选择Package.
在新建的套件项目中,看Project Manager这个画面,在内容节点上点击鼠标右键,然后为这个项目加入一个新的单元文件,当然就是把刚刚制作好的TDate组件类别的文件加入。
再次在Project Manager画面上用鼠标右键点击套件项目,先选取里面的Build选单项目,建置整个 套件,然后再选取鼠标右键选单中的Install,就可以把我们刚刚写好的TDate当成一个组件安装到IDE的工具盘了。