我在Delphi项目中使用Synapse库来进行网络连接。
当我尝试使用外部单元中定义的类型之一,即:'TTCPBlockSocket'时,它有红色下划线并显示“未声明的标识符'TTCPBlockSocket'”。
这些文件都在正确的文件夹中,'uses'语句可以找到它们并且没有显示任何错误。
奇怪的是,我在另一个项目中有相同的设置,并且该项目中没有错误。
作为备注:我无法安装/编辑软件/设置,因此我无法添加任何修复。
答案 0 :(得分:9)
这是Error Insight中众所周知的错误。自从Error Insight首次在Delphi 2005或2006中引入以来,它已存在,并且至今仍存在于Delphi XE5中。
它是由用于Error Insight的不同编译器引起的,显然,它无法访问Code Insight编译器使用的相同符号集(帮助您在代码编辑器中查找符号的符号集)或命令-line编译器(用于实际编译应用程序或包的代码的编译器)。因此,它仅使用项目(.dpr)文件中实际引用的文件来定位符号,并且由于代码中uses子句中的大多数文件不在.dpr中,因此无法找到它们。 / p>
有两个修复(一个很容易,一个有效,但背面很痛):
(简单的)。完全关闭Error Insight,在Tools-> Options,Editor Options部分,Code Insight;只需取消选中Error Insight框即可。我更喜欢这个,因为无论如何错误洞察力都无法正常工作,并且它避免了每10分钟必须使用其他选项的麻烦。这是我安装新版IDE并看到红色下划线时的第一件事。
(痛苦的方式)。使用项目 - >为包含下划线符号之一的每个单元添加到项目。这会将每个单元的引用添加到项目.dpr文件中,这会导致它的大小急剧增加。这是一个痛苦,因为你通常必须为每个单元(根据我的经验,包括那些属于标准VCL / RTL的那些)尚未添加,并且很快变得烦躁。错误洞察力并没有告诉你任何快速 Ctrl + F9 无论如何都不会,IMO。