【问题标题】:Delphi .PAS code reverts to the previous code after compile/buildDelphi .PAS 代码在编译/构建后恢复为以前的代码
【发布时间】:2013-12-13 06:34:46
【问题描述】:

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

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

    BUILD 的行为也相同。 有人知道这个问题吗?

提前致谢。

更新

更多提示:

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

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

.DCU 和 .PAS 文件也可以在同一个目录中吗?我将此目录(.PAS 和 .DCU 文件都存在)输入到“Tools->Options->Delphi Options->Library - Win32”下的目录列表中

【问题讨论】:

  • 没有问题。如果编译更改的文件,则更改不会保存在磁盘上。如果您想保存更改,您应该点击“保存”。
  • @Ramajayam,您使用的是什么 Delphi 版本?当您说“当我看到 pas 文件时”时,那是在哪里/何时?请准确描述您采取的步骤(编辑您的问题)。
  • 我更新了问题。现在清楚了吗?我对德尔福完全陌生。我使用 Borland Developer Studio 2006。旧 Borland Project Group (.BPG)
  • 你可能是第一个发现这个问题的人。你在抽什么? :)
  • 您不能编辑XX_TLB.PAS 文件。他们受到保护。您需要在类型库编辑器中更改定义。

标签: delphi delphi-2006


【解决方案1】:

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

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

Code Generated When You Import Type Library Information

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


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

【讨论】:

    【解决方案2】:

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

    我想到的另一种可能性是您有多个文件副本。我知道会发生以下情况:

    1. 您创建了一个包含 Unit1 的包。
    2. 您安装软件包。
    3. 然后创建另一个包含不同 Unit1 的项目。可能是文件的副本位于不同的位置,因此它看起来像同一个单元。
    4. 然后您修改 Unit1 的副本,但 IDE 有时更喜欢从包中打开文件。

    最重要的是,除了删除空事件处理程序之外,IDE 不会撤消您的更改。因此,您似乎极有可能拥有该文件的多个副本。要深入了解,您需要获取文件的完整路径。在 IDE 中,将鼠标悬停在带有文件名的选项卡上,IDE 将在提示中显示完整路径。我怀疑你会发现你有两个不同的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-21
      • 2013-11-20
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      相关资源
      最近更新 更多