编译组件时,Delphi单元被忽略。

3

我正尝试在Delphi 2010上编译TBX_D2010。编译失败,报错信息为:TBX.pas中'TTBPopupPositionRec'未声明。

奇怪的是,TTBPopupPositionRec在TB2Item单元中已经被声明。更奇怪的是,即使我可以编辑TB2Item.pas文件,甚至删除整个内容,它仍然会以相同的错误失败,忽略TB2Item.pas中引入的错误,就好像它使用了另一个不同版本的TB2Item一样。但是,如果将TB2Item从TBX.pas的uses中删除,则会导致不同的错误。

我用dir /s命令搜索了TB2Item.*文件,并没有发现可疑的内容,并且删除了所有TB2Item.dcu文件。

到底发生了什么,为什么Delphi忽略了我在TB2Item.pas中的更改呢?


1
你安装了包含这个单元的软件包吗? - David Heffernan
谢谢,这让我找对了方向。我删除了其他包的所有.bpl和.dcp文件,重新编译、重新安装了其他包和新包,一切都正常工作了。 - Kaitnieks
3个回答

4

TBXToolbar 2000的一个附加组件。

默认情况下,TB2Item.pas不包含TTBPopupPositionRec,需要在TBX\Tools\TB2k Patch\目录中运行找到的差异来添加该内容。

如果没有找到这种类型,则表示补丁未正确应用。

另一个注意事项是,我注意到Toolbar 2000的最后支持版本是Delphi 2009。 由于您正在使用Delphi 2010编译,因此可能需要更新一个或多个编译器定义。


问题在于我安装了未打补丁的TB2K,然后将其删除以进行修补,但由于没有删除bpl和dcp文件,因此卸载不完全。 - Kaitnieks

2

当您在IDE中安装了包含无法找到的神秘单元的软件包时,通常会发生这种情况。

确切的解决方案取决于您的具体情况。


1
发布答案以便关闭此问题:
我删除了其他软件包的所有.bpl和.dcp文件,重新编译、重新安装了其他软件包和新软件包,一切都正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接