【问题标题】:Event click when scrolling a scrollbox on XE7在 XE7 上滚动滚动框时单击事件
【发布时间】:2014-11-28 15:06:46
【问题描述】:

当您触摸并拖动以滚动滚动框时,是否有人建议阻止滚动框引发单击事件?

场景: 我使用带有按钮的 vertscrollbox 作为 Android 应用程序的调度程序,您可以上下滚动,然后单击按钮以显示更多信息。 当您触摸并滚动屏幕时会出现问题,放手时会生成单击事件,如果它位于按钮上方,您会获得信息,但除非您专门单击按钮,否则我不希望这样。

希望我的英语很清楚。

【问题讨论】:

  • 我没有遇到你所说的这个问题。您使用的是OnClick 事件还是OnMouseDown / OnMouseUp 事件之一?我敢打赌您使用的是OnMouseUp,它会在用户松开手指时触发。但我刚刚测试过,即使这样也不会导致问题。也许你有一些我们看不到的代码?
  • 我正在使用按钮的 OnClick 事件。要复制这个问题很容易。在表单上放置一个垂直滚动框,然后在其上添加一些按钮。将 showmessage('OnCLick') 放入按钮事件中,然后运行!尝试同时触摸按钮上下滚动滚动框
  • 我想我知道发生了什么 - 用户无意中触摸并按住按钮,然后用手指上下滚动,然后当他在滚动后移开手指时,该按钮上的 OnClick 事件触发最初的接触点?只是为了澄清?

标签: android delphi


【解决方案1】:

您可以使用 OnTap 事件。这不是一个完美的解决方案,因为此事件在 Windows 上不起作用(因此您必须使用条件定义在 Windows 上进行调试),但至少在 Android 上,当您滚动框时不会引发 OnTap(在西雅图测试) .

【讨论】:

    【解决方案2】:

    确保在执行 showmessage('OnCLick') 中的代码之前检查最后一个事件是否是滚动。为此,您必须保留一个带有上次事件历史记录的静态变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-26
      • 2023-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多