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
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




