我有一个具有这种结构的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选项工作正常,但不是编译。
在我看来,你的问题(至少截至目前)是你使用正斜杠而不是反斜杠。
uses
...
SomeFile in 'Common/SomeFile.pas' {ChildFrame},
...
......应该......
uses
...
SomeFile in 'Common\SomeFile.pas' {ChildFrame},
...
你错过了.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
表格变量的名称。