如何在自定义组件中包含位图(如果可能)?

How cand I include a bitmap in my custom component (if is possible)?

我正在编写一个需要显示位图的组件(一个按钮)。我不想制作一个 ImageList 属性 并且用户分配一个图像。我希望那个按钮只有我选择的图像。

我试图将位图包含在资源文件中,但当我尝试访问它时,我收到 "Resource not found" 错误消息。这就是我所做的:

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} 指令,并从菜单 Project -> Resources 加载了资源,它正在工作,同时使用 HInstance 或 FindClassHInstance(MyComponent)。

使用资源编辑器,我发现当我从菜单中加载资源时,资源显示的名称为 "FIXED",但当我加载使用 brcc32 编译的资源时,它显示的名称为“ 0”。 brcc32好像没有设置正确的名字。

但我不想从菜单加载它,我希望它随组件自动加载。

编辑2: 雷米勒博是正确的。我使用了错误的 BMP 格式(文件以 'BM6' 字符而不是像 Photoshop 生成的 'BM8' 字符开头,并且它有效)。

在您的 RC 文件中将 BMP 更改为 BITMAP,并在您的代码中将 HInstance 更改为 FindClassHInstance()

FIXED BITMAP "fixed.bmp"

Glyph.LoadFromResourceName(FindClassHInstance(MyComponent), 'FIXED');