我创建一个名为 glyfs.rc 的png资源文件
GLYF_CONFEDITOR RCDATA confeditor.png
GLYF_EXTRAFE RCDATA extrafe.png
.......
我将它添加到我的项目中
放一个TsBitBtn(它是alphaskin组件类)并尝试从资源文件加载glyf
sbitbtn1.Glyph.LoadFromResourceName(HInstance,'GLYF_CONFEDITOR');
当我运行时,我得到名称为' GLYF_CONFEDITOR'的错误资源文件。未找到。
我做错了什么?
我用于png的3方工具是从here下载的pngdelphi 但是sbitbtn加载png文件原生...
答案 0 :(得分:5)
您的代码存在多个问题:
TBitBtn.Glyph
类型为TBitmap
,TBitmap.LoadFromResourceName
采用RT_BITMAP
资源类型,而不是RT_RCDATA
,因此“资源未找到”错误。EInvalidGraphic
或类似的¹,因为TBitBtn.Glyph
是TBitmap
,自然TBitmap不会加载PNG数据。¹在LoadFromResourceName后面有WinAPI函数LoadImage,实际的错误信息可能会有所不同。