You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改C++Builder FireMonkey程序中TButton的鼠标悬停颜色?

在C++Builder FireMonkey中修改AquaGraphite样式TButton的悬停效果

针对你遇到的AquaGraphite样式TButton悬停时自动变蓝色的问题,有两种解决方案:修改悬停颜色,或者完全移除悬停变色效果,具体实现如下:

修改悬停颜色

方法1:通过代码动态控制

利用按钮的OnMouseEnter和OnMouseLeave事件,根据按钮当前的文本(Start/Stop)设置对应的悬停颜色:

void __fastcall TForm1::BtnStartStopMouseEnter(TObject *Sender)
{
    TButton* btn = static_cast<TButton*>(Sender);
    if (btn->Text == L"Start")
    {
        // 鼠标悬停时,Start按钮设为深绿色
        btn->Fill->Color = TAlphaColorRec::DarkGreen;
    }
    else if (btn->Text == L"Stop")
    {
        // 鼠标悬停时,Stop按钮设为深红色
        btn->Fill->Color = TAlphaColorRec::DarkRed;
    }
}

void __fastcall TForm1::BtnStartStopMouseLeave(TObject *Sender)
{
    TButton* btn = static_cast<TButton*>(Sender);
    // 鼠标离开时恢复原颜色
    if (btn->Text == L"Start")
    {
        btn->Fill->Color = TAlphaColorRec::Green;
    }
    else if (btn->Text == L"Stop")
    {
        btn->Fill->Color = TAlphaColorRec::Red;
    }
}

方法2:修改StyleBook中的样式

如果项目使用了StyleBook管理样式,可以直接修改AquaGraphite样式中TButton的悬停状态:

  • 打开StyleBook组件,找到AquaGraphite样式下的TButton对应的ButtonStyle
  • 展开States节点,找到Hovered状态
  • 修改Hovered状态下的Fill->Color为你需要的颜色(比如对应Start/Stop的深绿/深红)
  • 确保目标按钮的StyleName关联到修改后的按钮样式

移除悬停效果

方法1:代码强制保持原颜色

在OnMouseEnter事件中直接将按钮颜色重置为当前状态的原颜色,抵消样式的默认悬停效果:

void __fastcall TForm1::BtnStartStopMouseEnter(TObject *Sender)
{
    TButton* btn = static_cast<TButton*>(Sender);
    if (btn->Text == L"Start")
    {
        btn->Fill->Color = TAlphaColorRec::Green;
    }
    else if (btn->Text == L"Stop")
    {
        btn->Fill->Color = TAlphaColorRec::Red;
    }
}

// OnMouseLeave事件可以留空,或者同样保持原颜色
void __fastcall TForm1::BtnStartStopMouseLeave(TObject *Sender)
{
    // 无需额外操作,或重复设置原颜色
}

方法2:修改样式取消悬停差异

在StyleBook中找到AquaGraphite样式的TButton:

  • 展开States下的Hovered状态
  • 将Hovered状态的Fill->Color设置为和Normal状态完全相同的颜色
  • 保存样式后,按钮悬停时就不会再变色

内容的提问来源于stack exchange,提问作者Drewski7280

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:07:39