现在的位置: 首页 > 综合 > 正文

Delphi 编写自定义组件(1)

2018年05月27日 ⁄ 综合 ⁄ 共 1491字 ⁄ 字号 评论关闭

1. 组件设计基础:

   1.编写组件步骤

       1) 确定一个祖先类。

TObject:直接从TObject继承下来的类不是组件。有些以此为基类的对象在设计期不需要使用,TIniFile

TComponent这是非可视组件的起点,它的特点是在设计时能够以流的方式在IDE上存取

TGraphicControl创建一个不需要窗口句柄、但要在屏幕上显示的组件时,用这个类作为祖先类

TWinControl所有需要窗口句柄的组件,都应以该类为基类。该类提供了Windows组件的一般

属性和事件

TCustomControl:该类是从TWinControl继承下来的。它具有Canvas属性和Paint
( )
方法,能够控制组

件的外观。也用于需要句柄的组件

TCustomClassNameV C L中有些类的属性是不公开的,它们用来作为组件的祖先类。可以以它为祖先

类创建出自定义组件,每个组件公开自己的属性

TComponentName:一个现有的组件,譬如TEditTPanelTScrollBox。与其创建一个新的组件,不

如扩展一个现有的组件。大部分自定义组件都是这样的

 

      2) 创建一个组件单元。

通过选择Component|New Component菜单命令来打开组件专家。在组件专家里,输入组件的祖先类名、组件的类名、组件显示在的面板页和组件的单元名。

单击OK,Delphi会自动创建组件单元,该单元有组件类型的声明和注册过程

3) 在新组件中添加属性、方法和事件。

(1) 加入简单类型的属性 :简单类型的属性是指数字、字符串和字符

 property InterProp: Integer read FInterProp write SetInterProp;

 

(2) 加入枚举型的属性 : 例如枚举型属性A l i g n,大部分可视的组件都有这个属性

type
  TEnumProp = (epZero,epOne,epTwo);

 

   property EnumPeop: TEnumProp read FEnumPeop write SetEnumPeop;

 

(3) 加入集合型的属性

要在Object Inspect中编辑集合型的属性,可以把这个属性展开。这样,集合型的每个元素就好像布尔类型的属性

type
  TSetOption=(pone,pewo,pthree);
  TSetOptions = set of TSetOption;

property Options: TSetOptions read FOptions write SetOptions;

 

4) 测试该组件
5) 在D e l p h i中注册该组件
6) 为该组件建立帮助文件

 

二:组件包

  优点:

1. 减少代码

2. 使应用程序更容易分发

3. 包容组件

 

2.包文件

.  d p k 包的源文件                              这个文件是包编辑器创建的,可以把它当作D e l p h i的项目文件  ( . d p r文件)
. d c p 运行期/设计期包的符号文件                    这是个编译过的包文件,它包含包的符号信息及I D E需要的头信息
. d c u 编译过的单元                                             包中包含一个单元,就会有一个. d c u文件
. b p l 运行期/设计期包的库文件                          这就是运行期/设计期包,相当于D L L。如果这是个运行期包,就必须把它与应用程序一起分发(如果应用程序使用了运行期包的话)。如果是个 设计期包,就必须把它分发给需要用它编程的程序员。请注意,必须分发单元的源代码或者一个. d c p文件

抱歉!评论已关闭.