为什么Delphi会显示“无法解析单元名xxx”?

12

我正在使用Delphi2010企业版更新4。
当我在IDE中打开我的项目并显示主窗体代码时,有2个单元名称下划线为红色

xxx http://img268.imageshack.us/img268/6475/unitnameunresolved.png.

我已经确认单元源路径在库路径浏览路径中。

令人惊讶的是,当我右键点击该单元并选择在光标处打开文件时,它可以工作(即delphi会打开正确的单元)。

对此有任何想法吗?


9
Error Insight 存在很多漏洞 - 可以参考 http://stackoverflow.com/questions/2112729/biggest-delphi-nitpicks/2113066#2113066。 - Uli Gerhardt
@CodeInChaos:当然,它编译得很好 :) - TridenT
我使用了带有IDE修补程序的DelphiXE进行迁移,它运行得更好(但当然还没有完全修复!) - TridenT
@UliGerhardt,您提供的链接已经不存在了,请问您可以提供其他信息页面吗? - Simran kaur
抱歉,某个管理员决定删除了链接的帖子,无法恢复。但是众所周知,错误提示功能存在缺陷,并且多年来一直如此。 - Uli Gerhardt
5个回答

8

Error Insight 将所有错误信息保存在结构视图中,但它存在很多漏洞。它不能像编译器那样理解您的代码。

Andreas Hausladen 开发了一个 IDE Fix Pack,可以减少“无法解析单元 xyz”问题的数量。

它不能修复该漏洞,但通过解决一些 Error Insight 的线程问题,使这些问题变得不那么明显。


3
太好了!"IDE Fix Pack 2009/2010/XE 3.5" 修复了这个项目的问题。感谢 Ulrich Gerhardt 和 Bharat! - TridenT

2

出于好奇,AdPort和/或AdStatLt中是否有受条件编译约束的代码?

支持Error Insight的解析器与编译器不同(在物理和上下文上)。编译器可能能够理解Error Insight无法理解的那些条件编译区域。

这只是我个人的猜测,但是Delphi 2010中的Error Insight得到了很大改进,通常只有在我的代码中存在尚未解决的错误时才会出现问题。


是的,有许多行在条件编译下。不知道是否与我的问题有可疑的联系... - TridenT

2
只需禁用错误洞察功能(工具->选项->编辑器选项->代码洞察,取消选中错误洞察)。这对我很有效。
来源:http://codeverge.com/embarcadero.delphi.ide/cannot-resolve-unit-name-forms/1041789 这只是一个外观问题,不会以任何方式影响您的应用程序。这是由于Error Insight(提供波浪红线功能)使用的编译器中存在错误所致,该编译器与用于构建应用程序或从命令行进行编译的编译器不同。自从Error Insight首次被引入以来,这个错误一直存在。(尽管出现的频率变小了;过去,我在安装Delphi后要做的第一件事就是禁用Error Insight,但在D2007和D2009中我没有必要这样做,因为这个问题非常少见,而且似乎不会持续很长时间。)既然实际上并没有问题(除了外观问题),您可以忽略它,或者通过禁用Error Insight(工具->选项->编辑器选项->代码洞察,取消选中“错误洞察”)来摆脱它。

1

我在工具\选项\环境选项\Delphi选项\库下重置了库路径。

点击下拉框,重新选择您的操作系统,它将重置库的路径。对我有用。


@Toby W 没有任何Windows64位选项,请参考截图并告诉我 http://prntscr.com/oz34oe - Simran kaur

0

关闭并重新打开项目通常有助于摆脱大多数这些错误。试试看...

(尽管如今,这可能是我在IDE中最让人恼火的问题...)


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