delphi 组件安装教程详解

微信扫一扫,分享到朋友圈

delphi 组件安装教程详解

学习安装组件的最好方法,就是自己编写一个组件并安装一遍,然后就真正明白其中的原理了。

本例,编写了两个BPL, dclSimpleEdit.bpl 与 SimpleLabel.bpl ,其中,dclSimpleEdit.bpl 依赖 SimpleLabel.bpl ,

或者说 dclSimpleEdit.bpl 需要 SimpleLabel.bpl 才能运行。这也是多数组件安装问题之典型!

本例源码下载(delphi 7)

一、首先在delphi中打开 ComponentStudy 目录中的 ComponetStudy.bpg ,此为工程组文件。

二、然后切换到 Project Manager (Ctrl + alt +F11 ) 窗口

三、在 dclSimpleEditD7.bpl 点右键菜单,选择 Options…

按上图设置这两个目录,Output directory 是 xxx.bpl 输出目录。Dcp output directory 是 xxx.dcp 输出目录。

如果不主动设置这两个目录,它们默认的目录是:C:Program Files (x86)BorlandDelphi7ProjectsBpl

[在PATH环境变量中,有此目录信息,后面会说到它的作用]

对 dclSimpleEditD7.bpl 的输出目录,做同样的上述设置(第三步之操作)。

四、在 SimpleLabel.bpl 上,点右键,选择 Build ,即编译。按同样方式对 dclSimpleEdit.bpl 进行编译。

因为dclSimpleEdit.bpl 引用了 SimpleLabel.bpl ,所以,要先编译前者。对于组件的安装,需要按顺序编译的原因就在于此。

五、在 dclSimpleEdit.bpl 点右键,选择 install

(delphi一般规则是 dcl 开头表示设计时包,设计时包就可以 install 到 delphi ide 中)

(运行时包,本例中的 SimpleLabel.bpl 则不能 install )

因为我们在第三步,修改了 BPL 的输出目录,所以,install 时就会出现此错误。(如果是默认目录,不会有此错误)

当 install 的时候,delphi.exe 加载了 d:wcpComponentStudyTSimpleEditbpldclSimpleEdit.bpl 之后,

dclSimpleEdit.bpl 会立即加载 SimpeLabel.bpl ,因 BPL 与 DLL 相类似,同属于动态动行库,在动态运行库代码中,

不易获得当前自己目录(不是绝对不能,可以通过其它方法获取到),所以 dclSimpleEdit.bpl 就会从系统 PATH 环境变量

中的目录去查找 SimpleLabel.bpl ,如果找不到,则报错。解决方法就是在 PATH 环境变量中加上

d:wcpComponentStudyTSimpleEditbpl

六、以 Win7 64 位为例,演示如何设置 PATH 环境变量

6.1 选中“计算机”,右键“属性”,再选 “高级系统设置”

6.2 点“编辑”后,在末尾先加上“半角分号”,再输入 d:wcpComponentStudybpl

6.3 可以这样验证一下

6.4 操作完毕之后,重新 delphi ,再 install dclSimpleEdit 就OK了。

6.5 在组件的 SimpleComponent 标签中检查,确认已经安装成功。PATH 环境变量,在任何操作系统,任何软件中都重要,

如:java 环境安装,andorid 等等,请对其有正确的理解。

七,使用此组件。重启 delphi ,打开 ComponentStudyUseSimpleEditUseSimpleEdit.dpr

并往Form 中拖一个 TSimpleEdit, F9 测试效果。

本文的重点是讲组件安装,所写范例代码也比较简单。

八、关于各种目录的设置问题。

8.1 菜单 Tools –> Environment Options..

8.2 Libray path

很明显,已经自动加上了此路径。此路径的作用,可以理解为 pas 文件的搜索路径。

此路径为全局,对任何工程有效。如果有多个版本的组件共存,可以改变这些目录的顺序,

来设置当前有效的组件版本。

8.3 在 exe 工程中,另一处与此功能相同的路径, 菜单 proejct –>Options… (Shift + Ctrl + F11)

此功能为局部,仅属于本工程使用。同样的,此单菜中关于 packages 中的选项,

亦有“本工程有效BPL”的功效(请自行研究)。这些设置,在多版本组件同时存在于delphi时非常有用。

九、其它:

9.1 delphi 安装组件的信息记录在何处,菜单 Component –>Install Package…

它实际上存在于注册表中 [HKEY_CURRENT_USERSoftwareBorlandDelphi7.0Known Packages]

9.2 组件自动安装包,实际上就是写注册表,写 PATH 环境变量(libray path 目录信息也是在注册表中)来实现的。

9.4 多版本组件如何共存。(稍复杂,用处不大,但可行)

a) 要让它们的 BPL 输出在不同的目录中。默认是全部在 C:Program Files (x86)BorlandDelphi7ProjectsBpl ,

是不行的(bpl同名的问题),所以各种组件安装教程,让大家先删除掉此目录中的 *xx*.bpl 等操作原因在此。

(或 PATH 环境变量中所涉及到的目录,如 WindowsSystem32 等,要在这些目录中执行删除 *xx*.bpl 操作)

b) 不可同时使用,且要使用 8.2 步骤中改变目录顺序。或者用 8.3 菜单中,的 Package 选项,来增减加载的组件。

十、出错演示,删除掉 PATH 环境变量中的 d:wcpComponentStudyTSimpleEditbpl ,重运行 delphi 结果如下

确定之后

询问是否下一次继续加载。

此信息的意思是, dclSimpleEditD7.bpl 找不到 SimpleLable.bpl ,是否在下一次

加载 dclSimpleEditD7.bpl ?选择是,设置好 PATH 环境变量,重启 delphi 就能正常。

选择否的结果:

已经取消勾选。当然,你设置正确 PATH 变量后,重启后勾上也就可能正常工作了。

(也可以在这里通过 add 安装组件)

9.5 如果exe中的组件与安装的版本不相符合时,会出现版本不同,属性不存在等提示,通过学习本教程,

相信大家就可以解决此类问题了。

delphi 的组件编写,组件安装,是一套很明晰的规则,而很多人,面对此规则的时候,手忙脚乱,

到处搜各种秘籍,方法,然而往往解决不到根本问题。

学习编程知识,一定要从表面现象,洞悉到其原理。这样才能真正掌握。

又如:delphi各种组件的使用方法,组件千千万,请问谁学得完?

但是,高手们拿到一个组件,稍加研究,就会使用,这是为什么?

既要学习“规则,知识小点”,又要上升为“技能,通识”。

微信扫一扫,分享到朋友圈

delphi 组件安装教程详解

PoC: Copy Data into Remote Process Address Space with Window Messages

上一篇

Poll and Voting System with PHP and MySQL

下一篇

你也可能喜欢

delphi 组件安装教程详解

长按储存图像,分享给朋友