【问题标题】:How to fix a corrupted project?如何修复损坏的项目?
【发布时间】:2012-03-24 06:23:18
【问题描述】:

我不知道我的 Delphi 发生了什么。 它没有响应我的请求:

  1. 当我搜索某个词时,它会将我带到错误的地方。
  2. 当我按住 ctrl 键单击某个函数或变量时,它什么也不做。
  3. 当我点击设计中的一个事件时,它不会将我带到正确的功能。
  4. 跟踪后,无故停止。

这种情况只发生在这个项目中,因为我打开了一个新项目并且它运行良好。 这个项目有什么损坏吗? (它已编译并正在构建,没有错误。)

【问题讨论】:

  • 您的项目中有些东西不同步。删除所有项目的 *.dcus,重新加载并重建项目。
  • @DavidHeffernan,.dsk 是什么?我没有 .dsk 文件
  • 无需删除。您是否尝试过从没有问题的版本控制创建一个全新的项目。
  • 用一些十六进制编辑器检查那些“不起作用”的单元,看看它们是否有正确的行结束符号 (#13#10)。 Delphi IDE 显示文件 OK 当它有 ie linux lineends 但一些功能被搞砸了,就像你经历的那样......
  • 压缩损坏的项目,将其作为文件附件提供,以便愿意回答的人可以重现您报告的问题。

标签: delphi delphi-2007


【解决方案1】:

如果特定单元发生这种情况,可能是因为您的 PAS 文件的行尾损坏或某些 Unicode 问题。

通常,容易发现的症状是编译行上的蓝点与实际代码不同步。 (只有调试器应该能够停止的行有蓝点)。

最简单的补救方法是复制整个单元并将其粘贴到普通记事本中,然后快速扫描愚蠢的字符会告诉您是否可能存在 unicode 故障。一旦排除这种情况,只需再次复制整个文本并将其粘贴回 IDE;这应该修复所有非 Windows 行结束。

对于轶事,当我们与使用基于西里尔文的编辑器的人进行外包时,它曾经经常发生在我工作的地方......

【讨论】:

  • +1。不过,更简单的解决方法是在记事本中打开 .pas 文件,进行虚拟更改(添加一个空行,然后将其删除),然后保存文件。记事本在保存时会自动修复不匹配的 CR/LF 对,您不必再为复制/粘贴而烦恼。
【解决方案2】:

试试这个:

  1. 开始一个新项目(保留旧项目的备份!)
  2. 复制当前.dpr 文件的内容,但不复制uses 部分。
  3. 然后每个单元开始从您的旧项目导入单元
    在此阶段执行所有操作(针对您尝试的每个单元),看看哪个单元失败了

然后将您的 .dproj 文件与旧的 .dproj 文件进行比较,并在评论中提及差异,看看我们是否可以解决这些差异。

【讨论】:

    猜你喜欢
    • 2013-05-12
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    相关资源
    最近更新 更多