如果我的所有路径都正确的话,为什么Delphi说“使用不同版本的yyy编译单元xxx”?

时间:2011-07-25 20:57:31

标签: delphi delphi-2006

首先,我想就问题本身道歉。我根本无法做得更好。那么,问题接着是示例和详细...

我从他们的来源手动安装了QuickReport Delphi 2006。它由两个包“DesignTime”和一个“RunTime”组成。

我的Delphi配置为在“D:\ BPL”中构建BPL文件,在“D:\ DCP”上构建在我的Delphi上编译的所有软件包的DCP文件

QuickReport的源代码位于“D:\ QuickReport”中,它们的包(设计和运行时)配置为将编译单元(DCU)保存在“D:\ QuickReport \ DCU”文件夹中。这是包中唯一完成的配置。没有设置不同的路径,BPL和DCP文件正确放置在我设置的文件夹中,如前所述。

通过这些设置,我能够毫无问题地构建和安装QuickReport(只是一些编译器警告,我认为这是正常的)。所有QuickReport组件都出现在Delphi的调色板中,在启动过程中不会发出任何错误,证明组件已正确安装且找到了所有软件包。

现在来测试:我开始了一个新的win32应用程序,完全是空的,只是一个空白表单。然后它放了一个QuickReport组件(TQuickRep)。我注意到的第一件事是单位“QuickRpt”,它自动放在“接口”的“使用”子句中,用红色下划线表示出现了问题。

当我在“QuickRpt”单元(uses子句)中执行CTRL + ENTER时,Delphi正确找到源文件(.pas),这是在“D:\ QuickReport”中然后我运行了一个BUILD ALL命令和出现以下编译错误:

[Pascal致命错误] Unit1.pas(7):F2051单元QuickRpt使用不同版本的QRExpr.TQREvElement进行编译

就是这样!!!

此错误仅在“快速报告”中发生。我使用与路径相同的配置安装了其他第三方组件,它们都能正常工作。

1 个答案:

答案 0 :(得分:3)

最后我能够解决这个问题。 @RRUZ和另一位朋友给了我一个提示:我系统上丢失的QuickRpt.dcu文件。还有一个QuickRpt.res文件。我发现了它们,但这个地方对我来说非常不可能:delphi LIB文件夹!!!

好吧,我有一些关于这个离奇事物的线索。

在Delphi 7之前,QuickReport与IDE一起提供,但默认情况下已禁用。在Delphi版本上,我们需要做的就是注册bpl以获得对QuickReport的完全访问权!

在Delphi 2006上,QuickReport不是IDE的一部分,也没有BPL可以注册,但是Borland的人忘了从旧的QuickReport中删除所有文件。 Delphi Lib文件夹是Delphi启动时要检查的第一个文件夹之一,因此,如果有旧文件,其他地方的新文件将永远不会编译,产生恼人的错误!

这个问题也可能出现在Delphi 2005上。