delphi - 是否可以将 jpg/png 图像加载到 TbitBtn 或 TSpeedButton 中?
问题描述
我需要在按钮中显示图像,以便用户在视觉上更容易知道按钮的用途,而不是阅读其文本。
据我所知TBitBtn
,TSpeedButton
是可以显示图像的按钮,但我对此一无所知,我想知道是否有可能拥有 .JPG 或 .PNG 文件并将该图像加载到按钮中它显示它。
解决方案
TBitBtn
并且TSpeedButton
只支持 BMP 图片,不支持 JPG/PNG。您必须将 JPG/PNG 图像转换为 BMP(这可以通过首先将图像加载到TJPEGImage
/TPNGImage
中,然后将Assign()
它们加载到按钮的Glyph
,即 a来在代码中完成TBitmap
)。
在现代 Delphi 版本中,TButton
有一个Images
可以分配任何属性的属性TCustomImageList
,并且可以将 PNG 图像添加到标准TImageList
,或使用第 3 方 PNG ImageList。
否则,您可以创建自己的所有者绘制按钮来直接绘制 JPG/PNG 图像。派生TButton
并覆盖其CreateParams()
方法以启用BS_OWNERDRAW
样式,然后处理WM_DRAWITEM
消息以根据需要绘制按钮(这就是这样TBitBtn
做的)。
推荐阅读
- python - 将多个 CSV 文件中的行合并到一个 CSV 文件中并保持相同的列数
- anylogic - 每个托盘类型 ID 只能获得一种颜色的问题
- c++ - Gordita 字体符号在 Qt 中出现像素化和偏移
- model - OpenCart 3.0.2.0 (Theme Journal2) 网站正面缺少产品型号 (SKU)
- c# - MySQL8 .NET Framework 4 的休眠
- wordpress - 在 WooCommerce 结帐中获取密码值
- java - 添加到初始化的 ArrayList 时出现 NullPointerException
- node.js - [Express][Nodejs] 如何在 socket.io 连接期间解密 express-session cookie?
- python-3.x - 启动后无法连接到appium服务器
- android - 如何在 AndroidX 中更改 Android SearchView 的 textcolor 或 queryhint textcolor?