H2161 警告:重复资源:类型 10 (RCDATA)

Joc*_*c02 2 delphi package embedded-resource delphi-xe6

我尝试将资源文件包含在我的包中。当我构建包时,我读到了这个警告:

[dcc32 Conseil] H2161 Warning: Duplicate resource:  Type 10 (RCDATA), ID PLUSUTILISEVOIR; File Project.dres resource kept; file Project.dres resource discarded.
Run Code Online (Sandbox Code Playgroud)

在我的单位中,我写道:...
结束;

{$R Project.dres}

implementation
...
Button.Picture.LoadFromResourceName(HInstance, 'Image1');
...
Run Code Online (Sandbox Code Playgroud)

资源加载良好,但为什么我有警告?

Ken*_*ite 6

有时 IDE 会感到困惑。检查您的 .DPR 文件(使用“项目”->“查看源代码”菜单项)。应该只有一个{$R *.RES}条目;IDE 有时会在列出的单元之一的右端添加一个。

(我展示的示例适用于应用程序,但同样也适用于包源文件。)

正确的:

program MaintMockup;

uses
  Vcl.Forms,
  NewMaintenanceDlg in 'NewMaintenanceDlg.pas' {Form2},
  Validations in '..\Validations.pas';

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)

不正确,会导致重复资源错误(注意第二行的额外资源指令uses):

program MaintMockup;

uses
  Vcl.Forms,
  NewMaintenanceDlg in 'NewMaintenanceDlg.pas' {Form2}, {$R *.RES}
  Validations in '..\Validations.pas';

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)