我需要在按钮中显示图像,以便用户在视觉上更容易知道按钮的用途,而不是阅读其文本。
据我所知TBitBtn
和TSpeedButton
是可以显示图像的按钮,但是我对此一无所知,我想知道是否可以使用。 JPG或.PNG文件,然后将该图像加载到按钮中,以便显示出来。
答案 0 :(得分:4)
TBitBtn
和TSpeedButton
仅支持BMP图像,不支持JPG / PNG。您将必须将JPG / PNG图像转换为BMP(可以通过代码完成,方法是先将图像加载到TJPEGImage
/ TPNGImage
中,然后再将Assign()
加载到按钮的{{ 1}},即TBitmap
)。
在现代Delphi版本中,TButton
具有Images
属性,您可以将其分配给任何TCustomImageList
,并且可以将PNG图像添加到标准TImageList
或使用第三方PNG ImageList。
否则,您可以创建自己的所有者绘制的按钮来直接绘制JPG / PNG图像。从Glyph
派生并覆盖其CreateParams()
方法以启用BS_OWNERDRAW
样式,然后处理WM_DRAWITEM
消息以根据需要绘制按钮(这就是{{1 }})。
答案 1 :(得分:2)
否,您不能为其中任何一个分配文件。如果您不知道控件,请查阅该手册:http://docwiki.embarcadero.com/Libraries/Tokyo/en/Vcl.Buttons.TBitBtn和http://docwiki.embarcadero.com/Libraries/Tokyo/en/Vcl.Buttons.TSpeedButton
您必须间接进行:将文件加载到TBitmap中,然后将其分配给按钮的Glyph属性-手册通过http://docwiki.embarcadero.com/CodeExamples/Tokyo/en/TBitBtnLayout_(Delphi)
给出了一个示例答案 2 :(得分:0)
是的,有可能。 在某些情况下, TBitBtn 类型按钮的背景颜色默认为透明。创建具有透明背景的PNG图像。在窗体上放置一个TImage组件。将PNG图像加载到 TImage 组件的Image属性中。将 TImage 组件和选定的图像放置在 TBitBtn 按钮将在窗体上的位置。在图像上放置一个 TBitBtn 按钮。那将是个不错的按钮。