2

在我的 Delphi VCL 表单应用程序中,我必须更改 TButton 的背景颜色。有没有办法在不使用第三方组件的情况下应用此更改?

谢谢。

4

3 回答 3

7

您不能TButton直接更改组件的颜色,而必须使用第三方组件或所有者绘制按钮(BS_OWNERDRAW)。

于 2013-03-27T16:57:58.423 回答
2
  1. 创建一个面板。
  2. 将面板的颜色更改为任何颜色。
  3. 空面板的标题。
  4. 在面板内创建一个 SpeedButton。
  5. 将 SpeedButton 的 Flat 属性设置为 True。
  6. 设置 SpeedButton 的 Align 属性 alClient。
  7. 瞧!这是您的颜色按钮!

原文来源:https ://engineertips.wordpress.com/2020/07/21/delphi-button-background-color/

于 2020-07-21T10:28:53.833 回答
0

很好的提示,谢谢你,Xel Naga!

您还可以在面板上放置图像,以使您的按钮更加美观。在这里,我添加了一个黄色玻璃按钮的图像。要获得圆角,您可以像这样塑造面板 >>

SetWindowRgn(Panel1.Handle, CreateRoundRectRgn(0, 0, Panel1.Width, Panel1.Height, 65, 40), True);

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

在那之后的下一个级别,您可以为按钮状态添加另外 3 个图像(彼此叠加):鼠标悬停 (OnMouseEnter)、按钮按下 (OnMouseDown) 和按钮禁用。只需更改图像的可见状态以显示您想要查看的图像...

于 2021-12-14T03:30:32.560 回答