Delphi .PAS代码在编译/构建后恢复为以前的代码

时间:2013-12-13 06:34:47

标签: delphi delphi-2006

我有一个.BPG项目,其中包含.DPR项目文件的集合。

  1. 打开.PAS文件
  2. 我在项目的.PAS文件中更改了一些代码。
  3. 保存
  4. 更改源代码后,我在该项目上尝试了COMPILE。
  5. 首先它说"编译"成功。
  6. 现在我看到相同的.PAS文件,更改丢失了。第2步更改的代码丢失了。它只有前面的代码。

    BUILD的行为也是一样的。 有人知道这个问题吗?

  7. 提前致谢。

    更新

    还有一个提示:

    .DPR项目名称为XX.dll在IDE中,该项目中有一个名为XX_TLB.PAS的文件。在这个文件中,我只尝试更改一些代码,这些代码在编译/构建后恢复。现在我尝试重命名此文件,这给了我一条错误消息

      

    类型库必须具有tlb扩展名。

    .DCU和.PAS文件也可以在同一目录中吗?我进入了这个目录(同时存在.PAS和.DCU文件)到"工具 - >选项 - > Delphi选项 - >图书馆 - Win32"

    下的目录列表中

2 个答案:

答案 0 :(得分:3)

XX_TLB.PAS个文件是受保护的文件。不要直接编辑此类文件。事实上,文件顶部有注释警告您编辑文件。

每次刷新类型库时都会重新生成它们。

请参阅Code Generated When You Import Type Library Information

每次编译/构建dll时,IDE都可以完成此刷新。


由于类型库和已注册的com对象的依赖关系,您永远不会编辑此文件。您可以通过类型库编辑器更改com对象本身,也可以创建一个与ActiveX类交互的新单元。

答案 1 :(得分:0)

作为一般规则,Delphi IDE不会撤消更改。有一个明显的例外。当您创建一个空事件处理程序,然后保存源文件时,IDE将删除该事件处理程序。也许这就是正在发生的事情。

我遇到的另一种可能性是你有多个文件副本。我知道以下情况:

  1. 您创建一个包含Unit1的包。
  2. 您安装包。
  3. 然后,您创建另一个包含不同Unit1的项目。也许该文件的副本位于不同的位置,因此它看起来像是同一个单元。
  4. 然后修改Unit1的副本,但IDE有时会更喜欢从包中打开文件。
  5. 最重要的是,除了删除空事件处理程序之外,IDE不会撤消您的更改。因此,您似乎极有可能拥有该文件的多个副本。要了解这一点,您需要获取文件的完整路径。在IDE中,将鼠标悬停在带有文件名的选项卡上,IDE将在提示中显示完整路径。我怀疑你会发现你有两个不同的文件。