| 网站首页 | JAVA文章 | AppServers | Web开发 | 应用开发 | 资源下载 | 论坛
    想学好编程,学好外语很重要  [enadd  2006年12月25日]        
设为首页 加入收藏 联系站长
您现在的位置: 编程笔记网 >> 应用开发 >> delphi >> 基础教程 >> 文章正文
第十九章 Delphi自定义部件开发(一)            【字体:
第十九章 Delphi自定义部件开发(一)
作者:不祥    文章来源:-    点击数:    更新时间:2006-12-12

   Delphi除了支持使用可视化部件所见即所得地建立应用程序外,还支持为开发应用而设计自己的部件。

  在本章中将阐述如何为Delphi应用程序编写部件。这一章将达到两个目的:

  ● 教你如何自定义部件

  ● 使你的部件成为Delphi环境的有机组合部分

 

19.1 Delphi部件原理

 

19.1.1 什么是部件

 

  部件是Delphi应用程序的程序构件。尽管大多数部件代表用户界面的可见元素,但部件也可以是程序中的不可见元素,如数据库部件。为弄清什么是部件可以从三个方面来考察它:功能定义、技术定义和经验定义。

  1. 部件的功能定义

  从最终用户角度,部件是在Component Palette上选择的,并在窗体设计窗口和代码窗口中操作的元素。从部件编写者角度,部件是代码中的对象。在编写部件之前,你应用相当熟悉已有的Delphi部件,这样才能使你的部件适合用户的需要。编写部件的目标之一是使部件尽可能的类似其它部件。

  2. 部件的技术定义

  从最简单的角度看,部件是任何从TComponent继承的对象。TComponent定义了所有部件必须要的、最基本的行为。例如,出现在Component Palette上和在窗体设计窗口中编辑的功能。但是TComponent并不知如何处理你的部件的具体功能,因此,你必须自己描述它。

  3. 部件编写者自己的定义。

  在实际编程中,部件是能插入Delphi开发环境的任何元素。它可能具有程序的各种复杂性。简而言之,只要能融入部件框架,部件就是你用代码编写的一切。部件定义只是接口描述,本章将详细阐述部件框架,说明部件的有限性,正如说明编程的有限性。本章不准备教你用所给语言编写每一种部件,只能告诉编定代码的方法和怎样使部件融入Delphi环境。

  

19.1.2 编写部件的不同之处

 

  在Delphi环境中建立部件和在应用程序中使用部件有三个重要差别:

  ● 编写部件的过程是非可视化的

  ● 编写部件需要更深入的关于对象的知识

  ● 编写部件需要遵循更多的规则

 

  1. 编写部件是非可视化的

  编写部件与建立Delphi应用最明显的区别是部件编写完全以代码的形式进行,即非可视化的 。因为Delphi应用的可视化设计需要已完成的部件,而建立这些部件就需要用Object Pascal 代码编写。

  虽然你无法使用可视化工具来建立部件,但你能运用 Delphi开发环境的所有编程特性如代码编辑器、集成化调试和对象浏览。

  2. 编写部件需要更深的有关对象的知识

  除了非可视化编程之外,建立部件和使用它们的最大区别是:当建立新部件时,需要从已存部件中继承产生一个新对象类型,并增加新的属性和方法。另一方面,部件使用者,在建立Delphi应用时,只是使用已有部件。在设计阶段通过改变部件属性和描述响应事件的方法来定制它们的行为。

  当继承产生一个新对象时,你有权访问祖先对象中对最终用户不可见的部分。这些部分被称为protected界面的。在很大部分的实现上,后代对象也需要调用他们的祖先对象的方法,因此,编写部件者应相当熟悉面向对象编程特性。

  3. 编写部件要遵循更多的规则

  编写部件过程比可视化应用生成采用更传统的编程方法,与使用已有部件相比,有更多的规则要遵循。在开始编写自己的部件之前,最重要的事莫过于熟练应用Delphi自带的部件,以得到对命名规则以及部件用户所期望功能等的直观认识。部件用户期望部件做到的最重要的事情莫过于他们在任何时候能对部件做任何事。编写满足这些期望的部件并不难,只要预先想到和遵循规则。

 

19.1.3 建立部件过程概略

 

  简而言之,建立自定义部件的过程包含下列几步: 

● 建立包含新部件的库单元

  ● 从已有部件类型中继承得到新的部件类型

  ● 增加属性、方法和事件

  ● 用Delphi注册部件

  ● 为部件的属性方法和事件建立Help文件

 

  如果完成这些工作,完整的部件包含下列4个文件

  ● 编译的库单元   ( .DCU文件)

● 选择板位图    (.DCR文件)

● Help文件     (.HLP文件)

● Help-keyword文件 (.KWF文件)

 

19.2 Delphi部件编程方法

 

19.2.1 Delphi部件编程概述

 

19.2.1.1 Delphi可视部件类库

 

   Delphi的部件都是可视部件类库(VCL)的对象继承树的一部分,下面列出组成VCL的对象的关系。TComponent是VCL中每一个部件的共同祖先。TComponent提供了Delphi部件正常工作的最基本的属性和事件。库中的各条分支提供了其它的更专一的功能。 

当建立部件时,通过从对象树中已有的对象继承获得新对象,并将其加入VCL中。 

19.2.1.2 建立部件的起点 

  部件是你在设计时想操作的任意程序元素。建立新部件意味着从已有类型中继承得到新的部件对象类。

建立新部件的主要途径如下:

  ● 修改已有的控制

  ● 建立原始控制

 ● 建立图形控制

  ● 建立Windows控制的子类

  ● 建立非可视部件

 

  下表列出了不同建立途径的起始类

[1] [2] [3] [4] [5] [6] 下一页  

文章录入:enadd    责任编辑:enadd 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 第二十章 开发Delphi对象式…

  • 第二十章 开发Delphi对象式…

  • 第二十章 开发Delphi对象式…

  • 第二十章 开发Delphi对象式…

  • 第二十章 开发Delphi对象式…

  • 第十九章 Delphi自定义部件…

  • 第十九章 Delphi自定义部件…

  • 第十九章 Delphi自定义部件…

  • 第十八章 Delphi客户服务器…

  • 第十八章 Delphi客户服务器…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |