3

我在 Delphi 中编写了一系列 ActiveX 控件以用于其他开发环境(例如 Visual Studio 或 Windows 的 dBASE,作为两个示例)

我使用作为 RAD Studio IDE 的一部分提供的 ActiveX 向导为我的基于 VCL 的控件生成 ActiveX“绑定”(需要更好的词),但是它似乎没有生成使它们出现在 IDE 上所必需的源代码组件托盘。

通常在那些 IDE(Visual Studio 和 dBASE Plus)上,我可以简单地导入一个 ActiveX 控件,它将显示在他们的工具箱(他们的组件托盘版本)上,并带有他们定义的图标。

好吧,我自己在 Delphi 中生成的 ActiveX 控件没有(它们导入得很好,但没有出现在托盘/工具箱上),过去两周我一直在搜索谷歌试图找到一个解决方案。

惨遭失败,我决定在这里问:

如何让我的 ActiveX 控件显示在 Visual Studio(和其他)的工具箱中?

感谢您的任何建议/建议。

编辑:一些额外的信息......

我一直在尝试对 XE2 和 XE3 执行此操作,但每次都失败了……但是,当我对 Delphi 2007 执行相同的操作(使用向导)时,组件的图标确实出现在 Pallet/根据需要其他 IDE 的工具箱。这意味着该问题是在 Delphi 2007 之后的某个时间引入的,并且可能是某些 RTL/VCL 修改的结果。

4

1 回答 1

1

我的研究得出的结论是,Unicode 版本的 Delphi(2009 到 XE3)不会使用提供的向导为 ActiveX 控件生成正确的标记。

此外,自 Delphi 2007 以来对 RTL 和 VCL 的更改意味着,即使您手动生成必要的源代码标记,您的控件在嵌入非 Delphi 应用程序(例如 Visual Studio 和 dBASE Plus)时也不会正常运行。这在很大程度上与 VCL 对符合 VCL 的Parent属性值的假设有关,其中属性的更新ParentFont将导致访问冲突错误。

就我而言,解决方案是在 Delphi 2007 中生成导出的 ActiveX 控件(它是与其他 ActiveX 控件消费者“公平竞争”的最新版本)

希望这些信息可以为您省去为了得出这个结论而必须经历的漫长而烦人的事实调查过程。

于 2013-02-11T02:03:14.060 回答