Delphi XE-所有蓝点都向上移动一行

Delphi XE-所有蓝点都向上移动一行,delphi,delphi-xe,Delphi,Delphi Xe,从昨天开始,我的源代码中的所有蓝点(编译行)都向上移动了一行。 因此,第一个点从“var”开始,而不是“begin”,最后一个点是函数最后一个“end”之前的一行 我删除了除DPR、PAS、DFM和DPRJ之外的所有文件(从DCU开始),并重新编译。但这些点仍然在移动。 我怎样才能解决这个问题?这使得分步调试几乎不可能。可能是文件已损坏,因此在一行上没有正确的行尾组合(#13#10)。是整个文件中的“一行错误”还是从单元中间的某个地方开始? 从Delphi 2007(可能已经是Delphi 20

从昨天开始,我的源代码中的所有蓝点(编译行)都向上移动了一行。 因此,第一个点从“var”开始,而不是“begin”,最后一个点是函数最后一个“end”之前的一行

我删除了除DPR、PAS、DFM和DPRJ之外的所有文件(从DCU开始),并重新编译。但这些点仍然在移动。
我怎样才能解决这个问题?这使得分步调试几乎不可能。

可能是文件已损坏,因此在一行上没有正确的行尾组合(#13#10)。是整个文件中的“一行错误”还是从单元中间的某个地方开始?

从Delphi 2007(可能已经是Delphi 2005)开始,您可以通过在
Tools-Options-Editor Options-Source Options
中启用复选框
Show line breaks
来检查代码中的行尾。换行符如下所示:


如您所见,CR本身不被视为换行符,并且会打乱可执行行点的同步

尝试关闭Delphi,然后删除所有
*.identcache
文件

我在Delphi Project目录的根目录下有一个批处理文件,该文件递归删除所有
identcache
文件。

尝试以下操作:

  • 在具有更改编码功能的编辑器中打开单元,如记事本++

  • 编码/将文件另存为ANSI

  • 在Delphi IDE中打开或重新填充文件


  • 点必须位于正确的位置。

    清除DCU并强制完整构建是解决此问题的常用方法。您的编辑器是否可能在与项目中使用的版本不同的文件位置查看源代码文件的不同版本。David正在了解一些事情!您可以通过在文件中的某个地方输入一些不可编译的胡言乱语来轻松测试这一点,并查看编译器是否在抱怨。如果不是,您正在查看一个文件,它正在编译另一个文件。我刚刚删除了我所有库中的DCU,并从零开始重建所有文件。这些点仍然在移动。这真奇怪@Cosmin-我听从了你的建议,把随机文本放在第一个点的行上(这行只包含“var”字),编译器立即抱怨。还有另一种方法可以查看我当前编辑的文件的完整路径?该单元是包的一部分吗?您正在使用运行时包吗?是否搜索文件以查找所有Unit.DCU文件?已修复!谢谢。另一个谜团解开了。Cosmin也感谢您的建议!艾恩,我在topicOK上添加了更多信息。OP用delphi xe标记了这个问题,我请求显示换行符的选项已经在那里可用。它不在ie Delphi 7中。我刚刚检查了D2007,它就存在了。因此,它被添加到D2005或D2007中。至少到目前为止,它存在于所有后续版本中。Notepad++可以输入这样的“半输入”,我认为它们与问题无关。“通过重构引擎创建临时缓存文件以提高性能。”@Turbine抱歉,我不知道这对Delphi的调试器有何影响,只是它确实有影响。在过去几周使用Delphi Berlin时,调试器偶尔会与项目不同步。程序将忽略所有断点,并且蓝点不在正确的位置。删除IdentitCache文件每次都修复了该问题。@这是一个旧问题,但最近的一个问题与此问题重复。此答案不正确。它与排序无关。问题与不正确的行尾有关(仅CR而不是CRLF组合)。这些信息在之前的答复中提供,所有这些答复都是近4年前写的。(顺便说一句,早在XE版本之前,DelphiIDE就支持非ANSI内容了。)