delphi自定义部件开发一(编辑修改稿)内容摘要:
程 RegisterComponents,过程 RegisterComponents 带两个参数:Component Palette 的页名和部件类型集。 例如,注册名为 TNewComponent的部件,并将其置于 Component Palette 的 Samples 页,在程序中使用下列过程: procedure Register。 begin RegisterComponents(39。 Samples39。 , [TNewComponent])。 end。 一旦注册完毕, Delphi 自动将部件图标显示在 Component Palette 上。 2. 使用 Component Expert(部件专家) 你能使用 Component Expert 创建新部件。 使用 Component Expert 简化了创建新部件最初阶段的工作,因为你只需描述三件事: ● 新部件的名字 ● 祖先类型 ● 新部件要加入的 Component Palette 页名 Component Expert 执行了手工方式的相同工作: ● 建立新的库单元 ● 继承得到新部件对象 ● 注册部件 但 Component Expert 不能在已有单元中增加部件。 可选择 File/New... ,在 New Items 对话框中选择 Component,就打开Component Expert 对话框。 填完 Component Expert 对话框的每一个域后,选择 OK。 Delphi 建立包括新部件和 Register 过程的库单元,并自动增加 uses 语句。 你应该立刻保存库单元,并给予其有意义的名字。 . 测试未安装的部件 在将新部件安装在 Component Palette 之前就能测 试部件运行时的动作。 这对于调试新部件特别有用,而且还能用同样的技术测试任意部件,无论该部件是否出现在 Component Palette 上。 从本质上说,你通过模仿用户将部件放置在窗体中的 Delphi 的动作来测试一个未安装的部件。 可按下列步骤来测试未安装的部件 1. 在窗体单元的 uses 语句中加入部件所在单元的名字 2. 在窗体中增加一个对象域来表示部件 这是自己增加部件和 Delphi 增加部件的方法的主要不同点。 你将对象域加在窗体类型声明底部的 public 部分。 Delphi 则会将对象域 加在底部声明的上面。 你不能将域加在 Delphi 管理的窗体类型的声明的上部。 在这一部分声明的对象域将相应在存储在 DFM 文件中。 增加不在窗体中存在的部件名将产生 DFM文件无效的错误。 3. 附上窗体的 OnCreate 事件处理过程 4. 在窗体的 OnCreate 处理过程中构造该部件 当调用部件的构造过程时,必须传递 Owner 参数(由 Owner 负责析构该部件)一般说来总是将 Self 作为 Owner 的传入参数。 在 OnCreate 中, Self 是指窗体。 5. 给 Component 的 Parent 属性赋值 设置 Parent 属性往往是构造部件后要做的第一件事时。 Parent 在形式上包含部件,一般来说 Parent 是窗体或者 GoupBox、 Panel。 通常给 Parent 赋与Self,即窗体。 在设置部件的其它属性之前最好先给 Parent 赋值。 6. 按需要给部件的其它属性赋值 假设你想测试名为 TNewComponent 类型的新部件,库单元名为 NewTest。 窗体库单元应该是这样的; unit Unitl。 interface uses SysUtils, Windows, Messages, Classes, Grophics, Controls, Forms, Dialogs, Newtest。 type Tforml = class(TForm) procedure FormCreate(Sender: TObject)。 private { private 申 明 } public { public 申 明 } NewComponent: TNewComponent。 end。 var Forml: TForml。 implementation {$R *.DFM } procedure ( Sender: TObject )。 begin NewComponent := ( Self )。 := Self。 := 12。 end。 end. 编写部件的面向对象技术 部件使用者在 Delphi 环境中开发,将遇到在包含数据和方法的对象。 他们将在设计阶段和运行阶段操作对象,而编写部件将比他 们需要更多的关于对象的知识,因此,你应当熟悉 Delphi 的面向对象的程序设计。 1. 建立部件 部件用户和部件编写者最基本的区别是用户处理对象的实例,而编写者创建新的对象类型。 这个概念是面向对象程序设计的基础。 例如,用户创建了一个包含两个按钮的窗体,一个标为 OK,另一个标为 Cancel,每个都是 TButton 的实例,通过给 Text、 default 和 Cancel 等属性赋不同的值,给 OnClick 事件赋予不同的处理过程,用户产生了两个不同的实例。 建立新部件一般有两个理由 ● 改变类型的缺省情况,避 免反复 ● 为部件增加新的功能 目的都是为了建立可重用对象。 如果从将来重用的角度预先计划和设计,能节省一大堆将来的工作。 在程序设计中,避免不必要的重复是很重要的。 如果发现在代码中一遍又一遍重写相同的行,就应当考虑将代码放在子过程或函数中,或干脆建立一个函数库。 设计部件也是这个道理,如果总是改变相同的属性或相同的方法调用,那应创建新部件。delphi自定义部件开发一(编辑修改稿)
相关推荐
断及病情进展的重要指标。 人类乳头状瘤病毒对宫颈 癌的“预警”作用 大量的研究表明在两年之内,近 30%的 HRHPV 携带者可发展为轻或重度不典型增生,而仅有 3%的低危亚型 (LRHPV)携带者发生相应的变化。 早、晚期癌症及癌前病变 晚期癌症为主 癌前 病变 正常 炎症 癌 全自动宫颈细胞分析系统 显 微 镜 TT CC TT 和和 常常 规规 的的 细细 胞胞 学学 检检 查查 万万
莱西、即墨盆地和胶莱河谷,为低产土壤,开发潜力较大。 潮土占可利用面积的 %,广泛分布于大小河流两侧的冲积平原或河流上游山丘间的盆状谷地,肥力较高。 褐土面积较少,仅占可利用面积的 %,分布在胶南市北部和平度市一些石灰岩出露的残丘坡地上。 莱西、胶州低洼平地也有小面积的幼年水稻土分布。 此外,自即墨金口至胶南白马河口的滨海一带还分布着亟待开发的滨海盐土。 DMC 清洁制浆 专利技术 54- 12
: 这样子的网址,其实这就是一个域名,而我们计算机网络上的计算机彼此之间只能用 IP 地址才能相互识别。 再如,我们去一 WEB 服务器中请求一 WEB 页面,我们可以在浏览器中输入网址或者是相应的 IP 地址,例如我们要上新浪网,我们可以在 IE 的地址栏中输入: 也可输入这样子 的 IP 地址,但是这样子的 IP 地址我们记不住或说是很难记住,所以有了域名 的说法
=================================================== ⊙ 测试目标:考查 ShortString 返回值类型的函数没有赋值时编译器的实现 ======================================================================== procedure Test。 register。 begin。
in the same way all the time and never changes their behaviour or attitudes towards people or things. 55. If you ________ to something, you agree to do it or to allow it to be done. Conquer confide
配置完成后,会返回至 VD Mgmt主界面,将光标移至图中 Virtual Disk 0 处,按回车。 可以看到刚才配置成功的虚拟磁盘信息,查看完 成后按 esc键可以返回主界面 在此界面,将光标移至图中 Virtual Disk 0 处,按 F2键可以展开对此虚拟磁盘操作的菜单。 注:左边有 +标志的,将光标移至此处,按向右方向键,可以展开子菜单,按向左方向键,可以关闭子菜单 如下图红框所示