<b>第十九章 Delphi自定义部件开辟(一)</b>[Delphi编程]
本文“<b>第十九章 Delphi自定义部件开辟(一)</b>[Delphi编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
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 成立部件的起点
部件是你在计划时想操作的肆意程序元素.成立新部件意味着从已有范例中担当得到新的部件对象类.
成立新部件的主要途径以下:
● 改正已有的掌握
● 成立原始掌握
● 成立图形掌握
● 成立非可视部件
下表列出了差别成立途径的起始类
表19.1 定义部件的起始点
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
途 径 起 始 类
─────────────────────────────
改正已有部件 任何已有部件,如TButton、TListBox
或抽象部件对象如TCustomListBox
成立原始掌握 TCustomControl
成立图形掌握 TGraphicControl
成立窗口掌握的子类 TWinControl
成立非可视部件 TComponent
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
也可以担当非部件的别的对象,但无法在窗体计划窗口中操作它们.Delphi包含很多这种对象,如TINIFile、TFont等.
1. 改正已有掌握
成立部件的最简单的办法是担当一个已有的、可用的部件并定制它.可以从Delphi供应的任何部件中担当.比方,可以改变尺度掌握的缺省属性值,如TButton.
有些掌握,如Listbox和Grid等有很多相同变量,在这种情形下,Delphi供应了抽象掌握范例,从该范例动身可定制出很多的范例.比方,你大概想成立TListBox的特别范例,这种部件没有尺度TListBox的某些属性,你不能将属性从一个祖先范例中移去,因此你需求从比TListBox更高层次的部件担当.比方TCustomListBox,该部件实现了TCustomListBox的全部属性但没有公布(Publishing)它们.当从一个诸如TCustomListBox的抽象类中担当时,你公布那些你想使之可得到的属性而让别的的保护起来(protected).
以上是“<b>第十九章 Delphi自定义部件开辟(一)</b>[Delphi编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |