2014-07-23 19 views
2

我有上有一个TListView的一种形式。我加载了一些项目,它显示正常。 如果我点击(OnClick)某个项目,则可以显示另一个包含项目详细信息的表单以及一些其他选项。我如何的OnClick和刷卡之间在Firemonkey TListView的项目区分德尔福XE6

但是,如果我向右滑动(激活“删除”按钮),我得到的OnClick事件,并详表显示。当我关闭Detail表单(或使用“Back”按钮)时,TListView现在显示Delete按钮。

所以,在此短版是我怎么能阻止时轻扫完成射击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; 

任何帮助,意见,资源将不胜感激。由于

+0

稍有不同的问题,但最终同样的问题。见这里:http://stackoverflow.com/questions/24681940/scrolling-vs-selecting-delphi-xe6 – ThisGuy

+0

谢谢@ThisGuy的回应。它是类似的(我可以实现该解决方案作为权宜之计),但我认为点击和滑动之间的时间差很短,并且难以可靠计算。另外,如果你保持足够长的时间,在点击鼠标之前长按就会触发。我现在不需要长时间的点击,但是为了利用所有可用的手势而不是两个手势,找到更可靠的解决方案会很好。 – JFish

回答

2

使用OnTap而不是OnClick事件

+0

请参阅http://stackoverflow.com/help/how-to-answer – SMR

相关问题