我在Delphi中编写了一系列用于其他开发环境的ActiveX控件(如Visual Studio或dBASE for Windows,作为两个例子)
我使用作为RAD Studio IDE一部分提供的ActiveX向导来为我的基于VCL的控件生成ActiveX“绑定”(因为想要更好的单词),但它似乎不会产生制作它们所需的源代码。出现在IDE组件托盘上。
通常在那些IDE(Visual Studio和dBASE Plus)上,我可以简单地导入一个ActiveX控件,它将显示在他们的工具箱(他们的组件托盘版本)上,并带有他们定义的图标。
好吧,我自己在Delphi中生成的ActiveX控件没有(它们导入得很好,但没有出现在托盘/工具箱上),而且我一直在搜索谷歌试图找到过去两周的解决方案
悲惨地失败了,我决定在这里问:
如何让我的ActiveX控件显示在Visual Studio(以及其他工具箱)中的工具箱上?
感谢您提出任何意见/建议。
编辑:一些额外的信息...
我一直在尝试使用XE2和XE3,并且每次都失败了...但是,当我使用Delphi 2007做同样的事情(使用向导)时,组件的图标确实显示在根据需要,其他IDE的托盘/工具箱。 这意味着该问题是在Delphi 2007之后的某个时候引入的,可能是一些RTL / VCL修改的结果。
答案 0 :(得分:1)
我的研究得出结论,Unicode版本的Delphi(2009到XE3)不会使用提供的向导为ActiveX控件生成正确的标记。
此外,自Delphi 2007以来对RTL和VCL的更改意味着,即使您手动生成必要的源标记,当嵌入非Delphi应用程序(例如Visual Studio和dBASE Plus)时,您的控件也将无法正常运行)。其中大部分与VCL推定符合VCL的Parent
属性值有关,其中ParentFont
等属性的更新将导致访问冲突错误。
我的解决方案是在Delphi 2007中生成导出的ActiveX控件(它是与其他ActiveX控件消费者“公平竞争”的最新版本)
希望这些信息可以为您节省我为了得出这个结论而必须经历的漫长而恼人的事实调查过程。