我在我的项目中使用了ActiveX组件。我可以将此组件添加到Visual Studio2010、2008、Delphi XE2、Visual basic6.0中,但不能将其导入Delphi5、6或7版本。
这是我的ftp服务器中的activex文件:Active X File
发布于 2012-01-22 20:04:00
好了,我足够勇敢地下载并注册了这个OCX,并尝试复制你所做的。是的,我发现了和你报告的一样的行为。
因此,我查看了XE2中导入的类型库单元。请记住,在XE2中,组件出现在面板上。在单元的底部是这样的代码:
procedure Register;
begin
RegisterComponents(dtlOcxPage, [TTAK_Control]);
end;
这段代码在调色板中注册组件,当OCX被导入到Delphi 6中时,它就丢失了,这是我不得不使用的唯一旧的Delphi。实际上,导入单元中缺少整个TTAK_Control
组件。有时导入过程会失败。
因此,我简单地从XE2获取导入的类型库文件,并将其复制到D6中等效单元的顶部。这就是名为TAK_ControlBoard_TLB
的单位。当我在D6中编译时,因为UIntPtr
不能被识别,所以有一个编译器错误。在D6中将其替换为Cardinal
。此时编译成功,组件出现在调色板上。
现在,当我试图将它添加到窗体中时,会产生一个OLE错误,但我对此无能为力,因为我对该组件一无所知。请注意,此错误在XE2和D6中都会发生。
https://stackoverflow.com/questions/8960551
复制