重组后未找到DFM

问题描述 投票:0回答:2

我有一个具有这种结构的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}

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

delphi delphi-7 dfm
2个回答
1
投票

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

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

......应该......

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

2
投票

你错过了.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表格变量的名称。

© www.soinside.com 2019 - 2024. All rights reserved.