【问题标题】:Firemonkey: TSpeedButton IsPressed no visible Effect?Firemonkey:TSpeedButton IsPressed 没有可见的效果?
【发布时间】:2012-05-31 10:13:31
【问题描述】:

如何设置 TSpeedButton(在 TToolbar 上)看起来被按下?它仅在单击时突出显示,但在鼠标离开时恢复正常。我将属性 Stayspressed 设置为 True,实际上属性 IsPressed 变为并保持为 True,但此状态不可见。

【问题讨论】:

    标签: delphi delphi-xe2 firemonkey


    【解决方案1】:

    你用的是什么风格?一些包含的没有包含所有的效果。

    首先,恢复为 windows 样式。如果可行,那肯定是样式问题,而不是代码问题。

    如果你想为另一种样式添加效果(实际上是动画):

    • 右键单击按钮并选择编辑默认样式。
    • 找到要显示动画的 Rectangle 的 Fill.Color 属性。
    • 单击动画图标并添加 TColorAnimation
    • 设置:StartValue(现有值)。
    • 停止值
    • 触发器:IsPressed=True

    • 重复上述步骤以添加第二个动画,其中 Start 和 StopValues 反转并且 IsPressed=False 的触发器

    【讨论】:

    • 我检查了 TSpeedButton 的默认样式。它在那里,但它是越野车。有两个触发器相互争斗,一个用于 IsPressed 的触发器总是松动。
    • 如果你不想说出你使用的是哪种风格,那没关系,但没有这些信息就不容易提供帮助。
    • 这是“Windows 样式”...默认样式。我没有明确设置任何样式。
    【解决方案2】:

    这是一个难点 - 标准的 TButton 样式包括有效的效果 - 当“IsPressed”为真时,按钮将看起来被按下。但是,其他样式(尤其是您自己的样式)可能会出现更多问题。我发现最好的解决方案是拥有 2 种样式并在按下按钮时更改样式。

    我发现让“鼠标悬停”动画与按钮中的“按下”动画一起工作几乎是不可能的 - 通常你希望在鼠标经过时稍微突出显示按钮,然后在按下时添加效果 - 特别是当你没有不想要默认的阴影效果而是颜色效果(我更喜欢,我不喜欢默认按钮按下的内部阴影效果),但我似乎总是遇到问题。任何一种效果都不会触发,或者按钮状态不会返回到您所期望的状态(我的意思是视觉上)。

    我的建议 - 添加一些额外的代码来更改按下按钮的样式,否则你可能会发疯:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 2014-08-10
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      • 2019-03-19
      相关资源
      最近更新 更多