是否可以将 jpg/png 图像加载到 TbitBtn 或 TSpeedButton 中?
is it possible to load a jpg/png image into a TbitBtn or a TSpeedButton?
我需要在按钮中显示图像,以便用户在视觉上更容易知道按钮的用途,而不是阅读其文本。
据我所知,TBitBtn
和 TSpeedButton
是可以显示图像的按钮,但我对此一无所知,我想知道是否可以一个 .JPG 或 .PNG 文件并将该图像加载到按钮中以显示它。
不,您不能将文件分配给其中任何一个。如果您不知道某个控件,请查找它的手册:http://docwiki.embarcadero.com/Libraries/Tokyo/en/Vcl.Buttons.TBitBtn and http://docwiki.embarcadero.com/Libraries/Tokyo/en/Vcl.Buttons.TSpeedButton
您必须间接执行此操作:将文件加载到 TBitmap,然后将其分配给按钮的字形 属性 - 手册通过 http://docwiki.embarcadero.com/CodeExamples/Tokyo/en/TBitBtnLayout_(Delphi)
为您提供了一个示例
TBitBtn
and TSpeedButton
only support BMP images, not JPG/PNG. You would have to convert the JPG/PNG images to BMP (which can be done in code by loading the images into TJPEGImage
/TPNGImage
first, and then Assign()
them to the button's Glyph
, which is a TBitmap
).
在现代 Delphi 版本中,TButton
has an Images
property that you can assign any TCustomImageList
to, and you can add PNG images to a standard TImageList
,或使用第 3 方 PNG ImageList。
否则,您可以创建自己的 owner-drawn 按钮来直接绘制 JPG/PNG 图像。从 TButton
派生并覆盖其 CreateParams()
method to enable the BS_OWNERDRAW
style, and then handle the WM_DRAWITEM
消息以绘制按钮(这就是 TBitBtn
所做的)。
是的,这是可能的。
TBitBtn类型按钮的背景颜色在某些情况下默认是透明的。创建具有透明背景的 PNG 图像。在窗体上放置一个 TImage 组件。将 PNG 图像加载到 TImage 组件的图像 属性 中。将带有所选图像的 TImage 组件放置在表单上 TBitBtn 按钮所在的位置。在图像上放置一个 TBitBtn 按钮。那将是一个不错的按钮。
- 在 Lazarus IDE、Linux 中测试。如果将按钮和图像放置在组件 TGroupBox 上,则工作正常。如果将它们放置在其他分组组件上,则不会显示 TBitBtn 的透明背景。
我需要在按钮中显示图像,以便用户在视觉上更容易知道按钮的用途,而不是阅读其文本。
据我所知,TBitBtn
和 TSpeedButton
是可以显示图像的按钮,但我对此一无所知,我想知道是否可以一个 .JPG 或 .PNG 文件并将该图像加载到按钮中以显示它。
不,您不能将文件分配给其中任何一个。如果您不知道某个控件,请查找它的手册:http://docwiki.embarcadero.com/Libraries/Tokyo/en/Vcl.Buttons.TBitBtn and http://docwiki.embarcadero.com/Libraries/Tokyo/en/Vcl.Buttons.TSpeedButton
您必须间接执行此操作:将文件加载到 TBitmap,然后将其分配给按钮的字形 属性 - 手册通过 http://docwiki.embarcadero.com/CodeExamples/Tokyo/en/TBitBtnLayout_(Delphi)
为您提供了一个示例TBitBtn
and TSpeedButton
only support BMP images, not JPG/PNG. You would have to convert the JPG/PNG images to BMP (which can be done in code by loading the images into TJPEGImage
/TPNGImage
first, and then Assign()
them to the button's Glyph
, which is a TBitmap
).
在现代 Delphi 版本中,TButton
has an Images
property that you can assign any TCustomImageList
to, and you can add PNG images to a standard TImageList
,或使用第 3 方 PNG ImageList。
否则,您可以创建自己的 owner-drawn 按钮来直接绘制 JPG/PNG 图像。从 TButton
派生并覆盖其 CreateParams()
method to enable the BS_OWNERDRAW
style, and then handle the WM_DRAWITEM
消息以绘制按钮(这就是 TBitBtn
所做的)。
是的,这是可能的。 TBitBtn类型按钮的背景颜色在某些情况下默认是透明的。创建具有透明背景的 PNG 图像。在窗体上放置一个 TImage 组件。将 PNG 图像加载到 TImage 组件的图像 属性 中。将带有所选图像的 TImage 组件放置在表单上 TBitBtn 按钮所在的位置。在图像上放置一个 TBitBtn 按钮。那将是一个不错的按钮。
- 在 Lazarus IDE、Linux 中测试。如果将按钮和图像放置在组件 TGroupBox 上,则工作正常。如果将它们放置在其他分组组件上,则不会显示 TBitBtn 的透明背景。