查找Delphi项目中的所有编译错误

时间:2010-05-24 02:34:30

标签: delphi

我正在对我的Delphi项目进行一些重构。我希望能够进行更改,然后查看所有项目中因该更改而中断的位置。类似于Eclipse列出项目的所有编译错误(在Java中)。

在Delphi中,我可以进行更改,然后重新编译我的项目,但编译器在找到第一个不编译的Unit时会停止。我必须修复该单元,再次编译,然后将显示下一个错误等等。

我希望能够立即在项目中看到所有编译错误。然后我可以决定改变是否值得做。例如,如果更改需要手动修复50个单独的源文件,则不值得这样做。但是,如果它只打破了2个文件,那么这很容易做出改变。

在Delphi中有什么办法吗?我是否可以告诉编译器在找到无法编译的单元之后继续运行?

我正在使用Delphi 2010

4 个答案:

答案 0 :(得分:5)

使用Delphi编译器无法做到这一点,但如果您正在考虑对单元的公共接口的某些部分进行重大更改,则可以使用IDE附带的重构工具来查找对所有内容的所有引用在你改变它之前,你将要改变它,这将为你提供你正在寻找的信息。

答案 1 :(得分:5)

作为模块化功能,Delphi单元在概念上与Java jar或.NET程序集处于类似的水平;他们编译成单个文件。在Java和.NET中,如果在引用的模块中存在编译错误,则可以编译依赖模块。

它们比.NET程序集等更精细的原因归功于它们的历史。它们的设计部分围绕分段x86架构;与任何一个单元相关的数据不能大于64KB。类似地,单元作为近代码和远代码之间的自然划分。如果你熟悉16位x86,你就会知道指向远数据的指针需要一个段的值以及偏移量,而near数据只需要一个偏移量。调用near代码也比调用far代码更快。当时的节目也较小,也不那么复杂;对于整个子系统的行为,该单元是一个合理的模块粒度。今天的情况要少得多。

答案 2 :(得分:0)

Delphi编译器已经 尝试 进行尽可能多的编译。
不幸的是,很多时候,错误是至关重要的,足以阻止编译器移过错误,因为它无法假设代码应该是什么,如果可编译的话。

此外,经常遇到第一个错误后编译器可以给出的错误是不可靠的,甚至可能在第一个错误修复后消失。 (见证所有红色波浪线出现并在您输入时消失)

编译器的作用是提供所有提示和警告(对于其他一些编译器称为错误)。

答案 3 :(得分:0)

您可以使用Ctrl-Shift-Enter查看当前在光标下的变量,属性,方法或wahtever的所有出现。有了这些信息,您可以决定是否进行更改。

唉,对于当前版本,此功能无法正常运行。