Delphi 10.4 中的 Advantech DAQNavi ActiveX 组件

问题描述

有没有人在 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 组件的分步指南。

  1. 假设你有一个驱动器 D:(我从来不相信 Windows 会在它的启动驱动器上保存重要的工作),创建文件夹 d:\D104 和它下面的 2 个子文件夹,d:\D104\Units 和d:\D104Pkg。

  2. 如果 Delphi IDE 尚未运行,请启动它,如果已运行,请执行“全部关闭”。

  3. 转到组件 |在 IDE 主菜单中导入组件。

  4. 从弹出窗口中选择您的类型库

  5. 点击下一步并将调色板页面设置为“我的导入”

  6. 单击下一步并将单选按钮设置为安装到新包。

  7. 单击下一步并将包名称设置为例如D:\d104\Pkg\MyPackage.dpk 并按照您的想法填写描述框。

  8. 点击完成。 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 相互配合,包括内存共享。

  1. 假设编译没有产生错误,转至组件 |在 IDE 中安装 Packages 并使用弹出窗口中的 Add 按钮添加 D:\D104\Pkg\MyPackage.Bpl 就大功告成了。

如果第 9 步中的编译似乎没有做任何事情,很可能是因为 BPL 生成到了错误的位置。找到它并删除它(否则它会再次困扰你),然后:

  1. 在 IDE 中将 D:\D104\Pkg\MyPackage.dproj 作为项目打开,然后从 IDE 的主菜单中单击 Project !项目选项 & 在项目弹出窗口中,选择 “Delphi Compiler”选项卡,在右侧,将包输出目录设置为 D:\D104\Pkg 并点击保存,然后重新编译项目并使用 Component |安装包以安装 .Bpl 文件。

==================================

Fwiw,在 D5/D6/D7 时代,向 IDE 添加组件要简单得多(而且 IME 更不容易出错),因为您可以使用独立的包编辑器完成整个过程。\Units

,

Embarcadero 现在已经调查并回应:

“这是错误......这是一个修复,对于另一个错误,这是铺平修复的良好意图之一。”

显然,该错误只是在设计时阻止控件出现在表单上,​​并不影响 OCX 的操作。