【问题标题】:Delphi Firemonkey TLayout mousedown not firingDelphi Firemonkey TLayout mousedown没有触发
【发布时间】:2013-05-09 10:54:31
【问题描述】:

我正在 Firemonkey 中创建一个按钮数组,每个按钮都是通过从资源中加载样式来创建的。

FButtons[r,c] := TLayout( TStyleManager.LoadFromResource(HInstance, BUTTON_STYLE, RT_RCDATA) );
FButtons[r,c].Parent := Self;
FButtons[r,c].Stored := false;
FButtons[r,c].HitTest := true;
FButtons[r,c].OnMouseDown := OnButtonMouseDown;

资源的内容只是从 TButton(深色样式)复制而来。

我遇到的问题是按钮没有为按下状态设置动画。因此,我试图捕获 OnMouseDown 事件以触发“IsPressed”动画,但永远不会触发 OnMouseDown。 任何想法为什么 OnMouseDown 没有发生?

提前致谢。 马丁

【问题讨论】:

    标签: delphi firemonkey


    【解决方案1】:

    如果您使用自定义 FM 样式,请确保样式元素(可能是容器)的 HitTest 属性设置为 False。 如果 HitTest 为 True,则样式本身将“吞噬”该事件。

    您可以在这里找到更多信息:

    【讨论】:

    • 是的,我已经确定 HitTest 在任何下降的对象上都不是真的。
    • 不加载样式会触发 OnMouseDown 吗?
    【解决方案2】:

    不知道为什么要设置

    Locked := true 
    

    解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-15
      • 2011-02-20
      • 1970-01-01
      • 2019-09-28
      相关资源
      最近更新 更多