我正在编写一个组件(一个按钮),需要在其上显示位图。我不想创建一个ImageList属性,让用户去指定一张图片。我希望这个按钮只能显示我选择的图片。
我尝试将位图包含在资源文件中,但是当我尝试访问它时,出现“未找到资源”的错误消息。这是我所做的:
myres.rc
FIXED BMP "fixed.bmp"
我使用以下命令编译资源文件:brcc32 myres.rc
然后将其包含在我的组件单元中...
implementation
{$R .\resources\myres.res}
并使用以下方式访问...
MyComponent.Glyph.LoadFromResourceName(HInstance,'FIXED');
// MyComponent = class(TSpeedButton)
编辑1: 我删除了 {$R .\resources\myres.res} 指令并从菜单 项目 -> 资源 加载资源,它在使用 HInstance 或 FindClassHInstance(MyComponent) 时能够正常工作。
使用资源编辑器,我发现当我从菜单加载资源时,资源的名称显示为“FIXED”,这是正确的;但是当我使用 brcc32 编译后加载资源时,其名称显示为“0”。看起来 brcc32 没有正确地设置名称。
但我不想从菜单加载它,我希望它能够随组件一起自动加载。
编辑2: Remy Lebeau 是正确的。我使用了错误的 BMP 格式(文件以 'BM6' 字符开始而不是像 Photoshop 生成的 'BM8'),更改后就可以正常工作了。