gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 15:21:00 25 4
gpt4 key购买 nike

我正在编写一个组件(一个按钮),它需要在其上显示位图。我不想创建 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} 指令,并从菜单 Project -> Resources 加载了资源,并且它可以使用 HInstance 或 FindClassHInstance(MyComponent) 正常工作。

使用资源编辑器,我发现当我从菜单加载资源时,资源按其应有的名称显示为“FIXED”,但是当我加载使用 brcc32 编译的资源时,它显示为名称“0”。 brcc32 似乎没有正确设置名称。

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

编辑2:雷米·勒博是正确的。我使用了错误的 BMP 格式(该文件以“BM6”字符开头,而不是“BM8”,就像 Photoshop 生成的那样,并且它可以工作)。

最佳答案

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

FIXED BITMAP "fixed.bmp"

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

关于delphi - 如何在我的自定义组件中包含位图(如果可能)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30648107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com