【发布时间】:2011-10-13 10:45:37
【问题描述】:
我在单个 .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);
RES 文件是由这个 RC 创建的:
MY_PICTURE1 RCDATA "my_picture1.png"
【问题讨论】:
-
一些想法。您是否有单独的设计时包和运行时包,并且 .res 仅链接到设计时包?或者,您是否以某种方式构建了一个不使用运行时包的 exe?
-
@David Heffernan:我有一个用于设计时和运行时的包。这个组件包也和主项目在同一个项目组,会不会导致这样的问题?
-
尝试在调用
TResourceStream.Create之前添加ShowMessage(IntToHex(HInstance, 8))。如果它弹出一个值为00400000的对话框,那么您是静态链接而不是包。 -
@David Heffernan:是的,它显示的是 00400000。你能给一些建议如何解决这个问题吗?
标签: image delphi resources components