问题描述
有没有人在 Delphi 10.3 或 10.4 中成功安装研华 DAQNavi 组件? 最大的问题是我找不到详细的步骤说明如何将 activex 组件安装到 Delphi 10.3 或 10.4 中。
我向 embarcadero 支付支持费用,但他们的回答是“询问研华”!
我已将 Advantech DAQNavi ActiveX 组件安装到 Delphi 10.3 中,一切似乎都正常,没有任何问题,但如果我将它们添加到表单中,则表单上没有任何显示。组件出现在结构列表中,我可以通过这种方式编辑它们,如果我打开使用 Advantech ActiveX 组件的早期版本的 Delphi 创建的项目,同样适用。
在安装过程中有些东西不能正常工作的事实让我很担心,我觉得用这个版本的 Delphi 编译使用这些组件的项目很不舒服。
解决方法
以下是在 Delphi Sydney (v.10.04) 中安装具有类型库的 ActiveX 组件的分步指南。
-
假设你有一个驱动器 D:(我从来不相信 Windows 会在它的启动驱动器上保存重要的工作),创建文件夹 d:\D104 和它下面的 2 个子文件夹,d:\D104\Units 和d:\D104Pkg。
-
如果 Delphi IDE 尚未运行,请启动它,如果已运行,请执行“全部关闭”。
-
转到组件 |在 IDE 主菜单中导入组件。
-
从弹出窗口中选择您的类型库
-
点击下一步并将调色板页面设置为“我的导入”
-
单击下一步并将单选按钮设置为安装到新包。
-
单击下一步并将包名称设置为例如D:\d104\Pkg\MyPackage.dpk 并按照您的想法填写描述框。
-
点击完成。 IDE 将生成
-
D:\D104\Units 中的一个文件,命名为 MyTypeLib.Pas(但请参阅第 9 步下方的注释)和
-
文件 D:\D104\Pkg\MyPackage.dproj
然后它将尝试编译 D:\D104\Pkg\MyPackage.Bpl,这是您需要在 IDE 中安装的包,以使您的 typelib 中的组件显示在 Delphi 的 MyImports 选项卡上组件调色板。顺便说一句,.Bpl 文件是一种特殊的 Dll,它与您的组件一样,包含一些“幕后”代码,以帮助 .Bpl 文件与 IDE 相互配合,包括内存共享。
- 假设编译没有产生错误,转至组件 |在 IDE 中安装 Packages 并使用弹出窗口中的 Add 按钮添加 D:\D104\Pkg\MyPackage.Bpl 就大功告成了。
如果第 9 步中的编译似乎没有做任何事情,很可能是因为 BPL 生成到了错误的位置。找到它并删除它(否则它会再次困扰你),然后:
- 在 IDE 中将 D:\D104\Pkg\MyPackage.dproj 作为项目打开,然后从 IDE 的主菜单中单击 Project !项目选项 & 在项目弹出窗口中,选择 “Delphi Compiler”选项卡,在右侧,将包输出目录设置为 D:\D104\Pkg 并点击保存,然后重新编译项目并使用 Component |安装包以安装 .Bpl 文件。
==================================
Fwiw,在 D5/D6/D7 时代,向 IDE 添加组件要简单得多(而且 IME 更不容易出错),因为您可以使用独立的包编辑器完成整个过程。\Units
,Embarcadero 现在已经调查并回应:
“这是错误......这是一个修复,对于另一个错误,这是铺平修复的良好意图之一。”
显然,该错误只是在设计时阻止控件出现在表单上,并不影响 OCX 的操作。