【问题标题】:How can I Differentiate between OnClick and Swipe on a Firemonkey TListView Item with Delphi XE6如何在使用 Delphi XE6 的 Firemonkey TListView 项目上区分 OnClick 和 Swipe
【发布时间】:2014-07-23 17:52:57
【问题描述】:

我有一个带有 TListView 的表单。我加载了一些项目,它显示正常。 如果我点击 (OnClick) 一个项目,我可以显示第二个表单,其中包含项目详细信息和一些附加选项。

但是,如果我向右滑动(以激活“删除”按钮),我会收到 OnClick 事件,并显示详细信息表单。当我关闭详细信息表单(或使用“返回”按钮)时,TListView 现在显示了删除按钮。

那么,简短的版本是如何在 Swipe 完成时阻止 OnClick 事件触发?

我尝试添加一个标志,并在 OnDeleteChangeVisible 和/或 OnGesture 中设置该标志,但该标志似乎从未被设置,并且当我在调试模式下运行时,我没有看到这些事件触发。

var isDelete: Boolean

procedure TfrmTaskList.lvTaskListDeleteChangeVisible(Sender: TObject;
  AValue: Boolean);
begin
  if (AValue = True) then
    isDelete := True
  else
    isDelete := False;
end;

procedure TfrmTaskList.lvTaskListGesture(Sender: TObject;
  const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
    if (EventInfo.GestureID = sgiRight) then
    begin
      isDelete := True
    end
    else
    begin
      isDelete := False;
    end;
end;

我们将不胜感激任何帮助、建议和资源。谢谢

【问题讨论】:

  • 略有不同的问题,但最终是相同的问题。见这里:stackoverflow.com/questions/24681940/…
  • 感谢@ThisGuy 的回复。它是相似的(我可以将该解决方案作为权宜之计来实现),但我认为点击和滑动之间的时间差非常短,并且难以可靠地计算。此外,如果您按住足够长的时间,长按会在鼠标抬起之前触发。我现在不需要长按,但如果能找到一个更可靠的解决方案来利用所有可用的手势,而不仅仅是两个,那就太好了。

标签: android mobile firemonkey delphi-xe6


【解决方案1】:

使用OnTap 代替OnClick 事件

【讨论】:

    猜你喜欢
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    相关资源
    最近更新 更多