delphi组件安装教程详解
- 格式:pdf
- 大小:692.38 KB
- 文档页数:6
delphi组件安装教程详解
学习安装组件的最好⽅法,就是⾃⼰编写⼀个组件并安装⼀遍,然后就真正明⽩其中的原理了。
本例,编写了两个BPL, dclSimpleEdit.bpl 与 SimpleLabel.bpl ,其中,dclSimpleEdit.bpl 依赖 SimpleLabel.bpl ,
或者说 dclSimpleEdit.bpl 需要 SimpleLabel.bpl 才能运⾏。这也是多数组件安装问题之典型!
⼀、⾸先在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)\Borland\Delphi7\Projects\Bpl[在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:\wcp\ComponentStudy\TSimpleEdit\bpl\dclSimpleEdit.bpl 之后,dclSimpleEdit.bpl 会⽴即加载 SimpeLabel.bpl ,因 BPL 与 DLL 相类似,同属于动态动⾏库,在动态运⾏库代码中,
不易获得当前⾃⼰⽬录(不是绝对不能,可以通过其它⽅法获取到),所以 dclSimpleEdit.bpl 就会从系统 PATH 环境变量
中的⽬录去查找 SimpleLabel.bpl ,如果找不到,则报错。解决⽅法就是在 PATH 环境变量中加上 d:\wcp\ComponentStudy\TSimpleEdit\bpl\
六、以 Win7 64 位为例,演⽰如何设置 PATH 环境变量6.1 选中“计算机”,右键“属性”,再选 “⾼级系统设置”
6.2 点“编辑”后,在末尾先加上“半⾓分号”,再输⼊ d:\wcp\ComponentStudy\bpl\
6.3 可以这样验证⼀下
6.4 操作完毕之后,重新 delphi ,再 install dclSimpleEdit 就OK了。
6.5 在组件的 SimpleComponent 标签中检查,确认已经安装成功。PATH 环境变量,在任何操作系统,任何软件中都重要,
如:java 环境安装,andorid 等等,请对其有正确的理解。
七,使⽤此组件。重启 delphi ,打开 ComponentStudy\UseSimpleEdit\UseSimpleEdit.dpr
并往Form 中拖⼀个 TSimpleEdit, F9 测试效果。
本⽂的重点是讲组件安装,所写范例代码也⽐较简单。
⼋、关于各种⽬录的设置问题。8.1 菜单 Tools --> Environment Options..8.2 Library path
很明显,已经⾃动加上了此路径。此路径的作⽤,可以理解为 pas ⽂件的搜索路径。
此路径为全局,对任何⼯程有效。如果有多个版本的组件共存,可以改变这些⽬录的顺序,
来设置当前有效的组件版本。
8.3 在 exe ⼯程中,另⼀处与此功能相同的路径, 菜单 proejct -->Options... (Shift + Ctrl + F11)
此功能为局部,仅属于本⼯程使⽤。同样的,此单菜中关于 packages 中的选项,
亦有“本⼯程有效BPL”的功效(请⾃⾏研究)。这些设置,在多版本组件同时存在于delphi时⾮常有⽤。
九、其它:9.1 delphi 安装组件的信息记录在何处,菜单 Component -->Install Package...
它实际上存在于注册表中 [HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Known Packages]
9.2 组件⾃动安装包,实际上就是写注册表,写 PATH 环境变量(libray path ⽬录信息也是在注册表中)来实现的。
9.4 多版本组件如何共存。(稍复杂,⽤处不⼤,但可⾏)
a) 要让它们的 BPL 输出在不同的⽬录中。默认是全部在 C:\Program Files (x86)\Borland\Delphi7\Projects\Bpl ,
是不⾏的(bpl同名的问题),所以各种组件安装教程,让⼤家先删除掉此⽬录中的 *xx*.bpl 等操作原因在此。(或 PATH 环境变量中所涉及到的⽬录,如 Windows\System32\ 等,要在这些⽬录中执⾏删除 *xx*.bpl 操作)
b) 不可同时使⽤,且要使⽤ 8.2 步骤中改变⽬录顺序。或者⽤ 8.3 菜单中,的 Package 选项,来增减加载的组件。
⼗、出错演⽰,删除掉 PATH 环境变量中的 d:\wcp\ComponentStudy\TSimpleEdit\bpl ,重运⾏ delphi 结果如下
确定之后
询问是否下⼀次继续加载。
此信息的意思是, dclSimpleEditD7.bpl 找不到 SimpleLable.bpl ,是否在下⼀次
加载 dclSimpleEditD7.bpl ? 选择是,设置好 PATH 环境变量,重启 delphi 就能正常。
选择否的结果:
已经取消勾选。当然,你设置正确 PATH 变量后,重启后勾上也就可能正常⼯作了。(也可以在这⾥通过 add 安装组件)
9.5 如果exe中的组件与安装的版本不相符合时,会出现版本不同,属性不存在等提⽰,通过学习本教程,
相信⼤家就可以解决此类问题了。
delphi 的组件编写,组件安装,是⼀套很明晰的规则,⽽很多⼈,⾯对此规则的时候,⼿忙脚乱,
到处搜各种秘籍,⽅法,然⽽往往解决不到根本问题。
学习编程知识,⼀定要从表⾯现象,洞悉到其原理。这样才能真正掌握。
⼜如:delphi各种组件的使⽤⽅法,组件千千万,请问谁学得完?
但是,⾼⼿们拿到⼀个组件,稍加研究,就会使⽤,这是为什么?
既要学习“规则,知识⼩点”,⼜要上升为“技能,通识”。
后记:2018.5.02晚,delphi 2007,安装 UniDAC 组件。
1.已⽤多种⽅法安装过,IDE中同时存在2套 UniDAC ,删之,重装不⾏。
2.根据报错信息,发现是 DbGridEh 组件,对 dac105.bpl 有 hook 或是调⽤。
可能原因:
a) DbGridEh 组件,在调⽤数据库驱动组件的时候,⽤了全局path,直接加载了 dac105.bpl
b) 也可能是 dbgridEh 调⽤了同名( dac105.bpl )
c) DBGridEh 有 hook 操作。
3.删掉 DBGridEh 组件,安装UniDAC, OK.
4.重安装另⼀版 DBGridEh ,OK
所⽤到的⽅法,均在本⽂提及,灵活运⽤即可。