我全新的Delphi XE在“结构”面板中显示数百个错误。它显示错误,如“第130行未声明的FileExists”或“第242行未声明的创建”。即使它显示了这些错误,程序编译也很好。
我也看到代码洞察并不总是有效。当我将光标移到变量上时,光标开始闪烁,不会出现弹出窗口。其他时候,它只是突出显示一些红色单位,它说它找不到它们。
有解决所有这些问题的技巧吗?
更新/伪修正:
我发现重启IDE有一段时间了
我真的很有帮助,有一天Embarcadero将发布Delphi ST(来自STable)
:)
答案 0 :(得分:8)
是的,已知CodeInsight和ErrorInsight存在很多问题。他们现在已经有一段时间了,但是还有很多工作要做。 Andreas Hausladen可能是Delphi社区中最聪明的人,他在IDE内部做了大量工作,他说他们有基于竞争条件的错误,如果没有完全重写,可能无法修复。
如果这些假错误给你带来麻烦,你可以禁用它们,就像Ken在评论中提到的那样。
答案 1 :(得分:4)
对我来说,通常有助于关闭项目并重新打开它;结构错误消失了。
答案 2 :(得分:2)
如果您保持图书馆条目的最新状态,似乎很多错误洞察问题都会消失。
这是曾经有人在AGES之前就早期Delphi版本的问题报告所指出的,似乎没有人接受过它。如果错误洞察在LIBRARIES列表中遇到一个不存在的文件,那么它似乎停止了进一步的观察 - 让那些恼人的红线曲折到处都是!麻烦的是,问题报告有这么多条目,每个人似乎都不知道该解决方案!
转到“工具 - 选项”,找到“LIBRARY”选项卡。浏览列表并删除所有ABSOLUTE但无效的条目。你可能并且最初应该留下任何有变量的东西,比如$(BDSLIB),即使是无效的,但绝对可以从删除无变量声明的无效变量开始(这就是我所说的绝对值)。如果你是gung-ho并且让Delphi自动删除无效的那些,所有那些带有“未实现”变量的人也会消失 - 这将打破很多事情(这是我认为这个论坛中其他地方讨论的另一个Delphi错误)。您可能还需要使用Project-Options库重复此操作,但如果项目来自其他人,请在此处更加谨慎!
如果没有立即执行该作业,则使用相应的选项选项卡关闭Error-Insight复选框,然后再次打开(每次关闭选项对话框)。这应该摆脱任何缓存的东西,如果存在的话。
只删除一些在Delphi XE4上为我工作的无效条目。
答案 3 :(得分:1)
我们注意到为什么会出现问题。 如果代码中存在一些无效的不可见字符,则显示为错误。当您复制一些文本并粘贴在delphi编辑器中时,有时会出现这些无效字符。然后,有时delphi粘贴带有无效字符的文本!
首先,您应该复制所有错误文本并将其粘贴到notepad ++上。
您将看到您复制的所有文字也不会被粘贴。 您将看到损坏的文本。您应该查看粘贴的代码,确定粘贴为文本的代码。你应该看看你在记事本上看到的哪个代码是粘贴的最后一个字符。
这里我们可以看到捕获的图片:“RoutePatternObject”;“ 所以在这些字符之后会出现一些无效字符但我们看不到!
所以我们在“;”字符后选择这些文本区域。 然后再次删除并重新键入已删除的代码!
所有红色下划线签名都将消失!
答案 4 :(得分:0)
之前我遇到过同样的错误,我问了同样的问题,这是回复: 来自另一篇文章:
你没有犯错。问题是有三个 XE2中的编译器(与之前版本的Delphi一样):真实的 编译器(工作正常),Code Insight编译器(即 更快),Error Insight编译器(必须更快), 和语法高亮解析器(这是最快的)。
XE2引入了许多使得普通编译器的功能 更慢,并给了Code Insight和Error Insight编译器一些 麻烦。首先,我们有新的目标:Win32,Win64和OSX 这导致每个目标的搜索路径不同(请参阅 $ PLATFORM指令),以及构建配置,尽管有 每个PLATFORM只有一个“库路径”(而不是构建版本) 配置)。
第二个复合因素是虚线单位名称(作用单位) 引入的名称)。 Windows不再是Windows,而是 Winapi.Windows。
我的猜测是这两个额外的复杂因素导致 Code Insight和Error Insight编译器的问题。注意 真正的编译器仍然有效。但Error Insight显示不正确 错误,Code Insight并不总是适用于这些单位。
您可以尝试再次将它们显式添加到项目中(其中 如果您在问题中提到,将使用完整路径 堆栈溢出也是如此)。
我发现的是:
(抱歉初版帖子不好,刚收到Stackoverflow帐号,不允许编辑它。我希望这样就够了)
答案 5 :(得分:0)
将pas文件复制并粘贴到记事本中,清除pas文件,保存,关闭IDE,打开IDE,然后从记事本复制并粘贴回适合我的pas文件。