And*_*rew 3 delphi resources components image
我在单个.dpk文件中设置了自己的Delphi组件.我的一个组件需要一些图像随其一起分发.我创建了RES文件(让它成为"MyImages.RES"),我希望我的可视组件在创建时加载其内容.
如何正确地将此RES文件添加到DPK?
当我将{$ R'MyImages.RES'}放入我的.dpk文件时,TResourceStream在创建时失败,因为它无法按资源名称找到我的图片:
constructor TMyComponent.Create(AOwner: TComponent);
begin
S := TResourceStream.Create(HInstance, 'MY_PICTURE1', RT_RCDATA);
Run Code Online (Sandbox Code Playgroud)
RES文件由此RC创建:
MY_PICTURE1 RCDATA "my_picture1.png"
Run Code Online (Sandbox Code Playgroud)
{$R 'MyImages.res'}直接在声明组件的单元中使用该指令.在加载资源时,使用FindClassHInstance(TMyComponent)(模块在哪里TMyComponent)而不是HInstance(主要可执行文件 - 这可能同时也是模块所在TMyComponent,具体取决于您的链接方式).
编辑:似乎您想要与运行时包链接,但实际上您将组件静态链接到主可执行文件中.显然,您已经编译了运行时(和设计时).bpl包.要编译使用带有运行时包的组件的主项目(.exe或.dll),您应该: