flash组件:通过例子看VCL组件开发全过程(一)


   这篇文章算是对我前段时间学习个学习整理总结以及对自己学习过程个回顾本文通过个简单例子来尽可能展示VCL组件开发各个方面本文针对即将学习组件开发初学者如果你已经熟悉组件开发或认为本文内容过于基础简单那么本文对你毫无用处阅读本文假设你已经熟悉delphi普通设计以及vcl结构层次还有些重要关键字:published、property等(注:本文内容建立在delphi5.0及以上版本)



   在这篇文章中我们将建立个和时间有关组件这个组件通过设置它区别状态有以下基本功能:1、显示系统当前时间(包括设置闹钟)2、跑表3、倒计时这是个简单例子然而我们将在这个例子中尽可能多用到delphi在组件开发中多种特性你可以通过以下列举出本文涉及特性有选择阅读:

   ·组件和组件包

   ·组件属性类别

   ·组件属性编辑器

   ·组件编辑器



、组件和组件包以及些你应该知道文件类型:

组件和组件包关系就如同普通工程中unit和工程文件关系通常你所安装组件都是以组件包形式发布个组件包中可以有很多个组件在组件开发中组件包就是项目工程文件.为了开始开发我们组件(我们把他叫做TClock)并将它包括在我们自己组件包(ClockPackage)中我们选择Fileààother在弹出窗口中New页选择Package新建个组件包得到个组件包窗口查看这个组件包原文件(.dpk)得到以下代码:

package ClockPackage;



{$R *.res}

{$ALIGN 8}

{$ASSERTIONS ON}

…….

…….

{$DESCRIPTION 'Our Clock Pack'}

{$IMPLICITBUILD OFF}



requires

  rtl;



end.

这个文件其实就是组件开发中工程文件requires关键字指示了组件包所需组件包列表随着向组件包中加入组件(类似于单元文件)你还会看到contains关键字指示了组件包所包含组件你可以通过组件包窗口中add和remove按纽来添加新组件和删除已有组件另外这个代码中所包含大量编译器开关大多都可以在组件包窗体上Options中设置这里需要补充介绍说明是组件包3种重要属性(都在Options中):Designtime Only、Runtime Only、Designtime and runtime(这3个词意思有英语基础朋友应该都知道吧)对于大多数组件包我们只要选择最后个就可以了然而有些组件包设计为只运行时(这样你用这套组件开发不能脱离组件而单独运行组件包也不能被安装)有些组件包被设计为只设计时(这将在后文有更详细介绍说明)

了解了组件和组件包我们对组件开发中可能出现些你没有见过文件做些介绍说明:dpk文件既组件包原代码;bpl文件组件包编译后结果在没有发布dpk情况下可以通过bpl来安装组件包到delphi(ProjectàOptionsàPackagesàadd);pas在这里就是组件包中组件原代码了;dcu为pas编译后结果在你选择将组件包含进组件包时(contains关键字)你可以选择发布原代码或是不发布(dcu文件);dcp如果你将组件作为运行时组件连接器将使用该文件



2、开始开发组件:

了解了上面知识后我们就可以开始开发组件了!在组件窗体中单击add选择NewComponent页在第个组合框中选择我们组件将要继承自哪个类(通常新组件是通过继承已有组件来开发)由于这个组件主要作用是要显示时间、跑表、倒计时种文字信息所以我们选择继承自TCustomLabel(由于我们并不需要Tlabel全部功能我们选择了能够隐藏Tlabel属性并有选择发布它属性TcustomLabel类)接下来为我们新组件取个名字Tclock然后指定我们想把组件安装到哪个页中这里我们自己键入个ClockAndTime页这将出现在RegisterComponents过程中(后面会详细介绍说明)选择好文件保存路径后(最好把它和组件dpk包放在同目录)确认这是组件包窗体中contains下已经多了我们刚才建立组件文件双击它开始编写代码

在代码中我们需要注意在erface部分个新过程:procedure Register;(注意:delphi规定RegisterR必须大写这是个保留字)这个过程是作为每个组件所必须有它完成组件注册包括组件本身以及如属性编辑器等多种组件特性注册):

procedure Register;

begin

  RegisterComponents('ClockAndTime', [TClock]);

//这个过程注册组件本身注意到前面定义ClockAndTime页了吗?

  //这里在后面还会出现些新过程包括注册组件属性类别等等

end;


在下篇中我们将给出这个组件全部原代码


Tags:  动易组件 iis组件 com组件 flash组件

延伸阅读

最新评论

发表评论