【问题标题】:DELPHI - How to change a TButton background color in a VCL Form Application?DELPHI - 如何在 VCL 表单应用程序中更改 TButton 背景颜色?
【发布时间】:2013-03-17 20:48:52
【问题描述】:

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

谢谢。

【问题讨论】:

标签: delphi button colors vcl


【解决方案1】:

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

【讨论】:

  • 如何实现Button的绘制?
  • 答案中的链接涵盖了这一点。您需要回复WM_DRAWITEM。
【解决方案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/

【讨论】:

  • 10.2 东京。这仅适用于设计模式。当我在源代码中尝试这个时,颜色消失了。
【解决方案3】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2011-03-26
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 2020-12-11
    • 2021-04-02
    • 1970-01-01
    • 2020-08-05
    相关资源
    最近更新 更多