Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 是否可以将jpg/png图像加载到TbitBtn或TSpeedButton中?_Delphi_Vcl - Fatal编程技术网

Delphi 是否可以将jpg/png图像加载到TbitBtn或TSpeedButton中?

Delphi 是否可以将jpg/png图像加载到TbitBtn或TSpeedButton中?,delphi,vcl,Delphi,Vcl,我需要在按钮中显示一个图像,这样用户在视觉上更容易知道按钮的用途,而不是阅读它的文本 据我所知,TBitBtn和TSpeedButton是可以显示图像的按钮,但我对它一无所知,我想知道是否可以有一个.JPG或.PNG文件,并将该图像加载到按钮中,以便它显示该图像。否,您不能为它们中的任何一个分配文件。如果您不知道某个控件,请查阅手册:和 您必须间接地执行此操作:将文件加载到TBitmap中,然后将其分配给按钮的Glyph属性-手册中给出了一个示例。不,您不能将文件分配给其中任何一个。如果您不知道

我需要在按钮中显示一个图像,这样用户在视觉上更容易知道按钮的用途,而不是阅读它的文本


据我所知,TBitBtn和TSpeedButton是可以显示图像的按钮,但我对它一无所知,我想知道是否可以有一个.JPG或.PNG文件,并将该图像加载到按钮中,以便它显示该图像。

否,您不能为它们中的任何一个分配文件。如果您不知道某个控件,请查阅手册:和


您必须间接地执行此操作:将文件加载到TBitmap中,然后将其分配给按钮的Glyph属性-手册中给出了一个示例。不,您不能将文件分配给其中任何一个。如果您不知道某个控件,请查阅手册:和

您必须间接地执行此操作:将文件加载到TBitmap中,然后将其指定给按钮的Glyph属性-手册提供了一个示例,通过,仅支持BMP图像,而不支持JPG/PNG。您必须先将JPG/PNG图像转换为BMP,这可以通过将图像加载到/中的代码来完成,然后将它们指定给按钮的Glyph,这是一个符号

在现代Delphi版本中,具有一个属性,您可以将任何属性指定给该属性,并且可以将PNG图像添加到标准中,或者使用第三方PNG图像列表

否则,您可以创建自己的所有者绘制按钮来直接绘制JPG/PNG图像。从TButton派生并重写其方法以启用样式,然后处理消息以按照您的需要绘制按钮这是TBitBtn的功能。

并且仅支持BMP图像,而不支持JPG/PNG。您必须先将JPG/PNG图像转换为BMP,这可以通过将图像加载到/中的代码来完成,然后将它们指定给按钮的Glyph,这是一个符号

在现代Delphi版本中,具有一个属性,您可以将任何属性指定给该属性,并且可以将PNG图像添加到标准中,或者使用第三方PNG图像列表

否则,您可以创建自己的所有者绘制按钮来直接绘制JPG/PNG图像。从TButton派生并重写其方法以启用样式,然后处理消息以按您的意愿绘制按钮这就是TBitBtn所做的。

是的,这是可能的。 在某些情况下,TBitBtn类型按钮的背景色默认为透明。创建具有透明背景的PNG图像。在表单上放置一个TImage组件。将PNG图像加载到TImage组件的image属性中。将带有所选图像的TImage组件放置在表单上TBitBtn按钮所在的位置。在图像上放置一个TBitBtn按钮。那个按钮很好

在LazarusIDE和Linux中测试。如果按钮和图像放置在组件TGroupBox上,则可以正常工作。若它们被放置在其他分组组件上,则不会显示TBitBtn的透明背景。 是的,这是可能的。 在某些情况下,TBitBtn类型按钮的背景色默认为透明。创建具有透明背景的PNG图像。在表单上放置一个TImage组件。将PNG图像加载到TImage组件的image属性中。将带有所选图像的TImage组件放置在表单上TBitBtn按钮所在的位置。在图像上放置一个TBitBtn按钮。那个按钮很好

在LazarusIDE和Linux中测试。如果按钮和图像放置在组件TGroupBox上,则可以正常工作。若它们被放置在其他分组组件上,则不会显示TBitBtn的透明背景。
您可以将BMP而非JPG或PNG直接加载到Glyph中,您不需要使用中间TBITMAP,只是您不需要使用不同颜色的中间变量,而且很明显,true=true是冗余的。您可以将BMP而非JPG或PNG直接加载到Glyph中,你不需要使用中间的TBITMAP,只是你不需要使用不同颜色的中间变量,很明显,true=true是多余的谢谢@Remy,我在Delphi Rio上,你的第二个建议帮了我很多,这就是我需要的。谢谢@Remy,我在Delphi Rio上,你的第二个建议帮了我很多,这就是我所需要的。如果您有兴趣在设计时从JPEG或PNG加载图示符,请参阅他建议创建自定义属性编辑器-TPictureEditor的地方。它可以很容易地用JPEG和PNG进行扩展。通过这种方式,您可以在设计时将任何图像格式转换为TBitmap。如果您有兴趣在设计时从JPEG或PNG加载图示符,请参阅他建议创建自定义属性编辑器-TPictureEditor的地方。它可以很容易地用JPEG和PNG进行扩展。这样,您可以在设计时将任何图像格式转换为TBitmap。