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)
资源加载良好,但为什么我有警告?
有时 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)