我有上有一个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;
任何帮助,意见,资源将不胜感激。由于
稍有不同的问题,但最终同样的问题。见这里:http://stackoverflow.com/questions/24681940/scrolling-vs-selecting-delphi-xe6 – ThisGuy
谢谢@ThisGuy的回应。它是类似的(我可以实现该解决方案作为权宜之计),但我认为点击和滑动之间的时间差很短,并且难以可靠计算。另外,如果你保持足够长的时间,在点击鼠标之前长按就会触发。我现在不需要长时间的点击,但是为了利用所有可用的手势而不是两个手势,找到更可靠的解决方案会很好。 – JFish