重组后找不到DFM

DFM not found after reorganisation

我有一个 Delphi 7 项目,结构如下:

.dpr
foo.pas
*.pas
*.dfm
Bin/
debug/

大部分源代码,除了一个文件,都是在其他项目之间共享的(尽管这不相关),所以我做了一些重组,如下所示:

.dpr
UniqueFile/
    foo.pas
Common/.pas
    *.pas
    *.dfm
Bin/
debug/

我用新结构更改了 .dpr 中的路径,但是当我出于某种原因尝试编译时,它找不到 Common 文件夹中的 .dfm 文件之一。显示的错误是:

[Error] File not found: 'SomeFile.DFM'

但是,.pas 和相应的 .dfm 都在该文件夹中。

我是不是漏掉了一些配置?


编辑:此文件包含在 .dpr 文件中,如下所示:

uses
   ...
   SomeFile in 'Common/SomeFile.pas',
   ...

EDIT2:我只将 SomeFile.dfm 文件复制到根文件夹,并且正在编译。出于某种原因,它仍在旧路径中寻找该文件?

EDIT3:我已经包含了@ken-white 指出的内容,但没有成功。所以现在 .dpr 看起来像这样:

uses
   ...
   SomeFile in 'Common/SomeFile.pas' {ChildFrame},
   ...

我还在 SomeFile.pas 中仔细检查了这一行:

{$R *.DFM}

我应该指出的另一件事是构建选项工作正常,但编译时不工作。

您缺少 .dpr 文件中的表单条目,该条目告诉 IDE 有一个 .dfm 关联。

当您创建新的 VCL Forms 应用程序时,IDE 将以下条目写入项目文件:

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

信息是 {Form1} 告诉 IDE 查找包含表单信息的 .DFM 文件。您已经说过 .pas 文件在您的新 Common 文件夹中,但没有告诉它它也应该在那里寻找 .dfm。 IDE 改为在项目文件夹中查找它,但在那里找不到。当然,直到您将其复制到项目文件夹中。 :-)

将您的 .dpr 更改为阅读

uses
   ...
   SomeFile in 'Common/SomeFile.pas' {FormClass},

{FormClass} 替换为 SomeFile 单元中的表单变量名称。

在我看来,您的问题(至少到目前为止)是您使用的是正斜杠而不是反斜杠。

uses
   ...
   SomeFile in 'Common/SomeFile.pas' {ChildFrame},
   ...

...应该改为...

uses
   ...
   SomeFile in 'Common\SomeFile.pas' {ChildFrame},
   ...