在iOS和Android中获取指压的位置

在iOS和Android中获取指压的位置,第1张

概述我正在使用DelphiXE5为Android(和iOS)开发.使用DelphiXE5中Touch属性的InteractiveGestures,我可以获得一个GestureEvent用于Zoom,Pan,Rotate,TwoFingerTap,PressAndTap,LongTap和DoubleTap.所有这些都附带一个TGestureEventInfo对象,我可以在其中获取事件的位置,例如.手指的坐

我正在使用Delphi XE5为Android(和iOS)开发.

使用Delphi XE5中touch属性的InteractiveGestures,我可以获得一个GestureEvent用于Zoom,Pan,Rotate,TwoFingerTap,PressAndTap,LongTap和DoubleTap.所有这些都附带一个TGestureEventInfo对象,我可以在其中获取事件的位置,例如.手指的坐标.

然而,似乎没有一个只是简单的点击/按下的手势.我知道在这种情况下会触发OnClick事件,但是OnClick事件没有TGestureEventInfo对象,因此我无法获取tap的位置.这似乎是获取信息的一个非常重要的事件.

我错过了什么吗?如何获得简单点击手势的位置?

解决方法:

使用OnMouseDown / Up事件:

procedure TForm17.button1MouseDown(Sender: TObject; button: TMousebutton;                                    Shift: TShiftState; X, Y: Single);beginend;

看到你得到X和Y坐标.

procedure TForm17.button1Click(Sender: TObject);beginend;

有了OnClick,你什么也得不到.

买者自负
请注意,OnClick在控件内部的MouseDown和同一控件内的MouseUp之后触发,没有任何其他MouseUp或Down.
如果要与OnClick具有相同的行为,则应检查该问题.

如果在释放单击之前单击按钮内部并向外移动,则不应将其注册为单击.

为什么OnClick没有给出坐标
FireClick中的OnClick与VCL中的OnClick相同.
OnClick是OnMouseDown和onmouseup的总和,因此没有一个地方发生点击,因为VCL不想在Down或Up坐标之间进行选择.

我的建议
触发OnClick事件,但在MouseDown中注册坐标.

procedure TForm17.button1MouseDown(Sender: TObject; button: TMousebutton;                                    Shift: TShiftState; X, Y: Single);begin  ClickGestureInfo.GestureID:= somethingNotAlreadyInUse;  ClickGestureInfo.Location:= Point(x,y);end;function ClearGestureInfo: TGestureEventInfo;begin  FillChar(Result, SizeOf(Result), #0);end;procedure TForm17.button1Click(Sender: TObject);begin  if ClickGestureInfo.GestureID = somethingNotAlreadyInUse then begin    //do stuff    ClickGestureInfo:= ClearGestureInfo;   end;end;

它通常也没有用于记录onmouseup坐标,因为如果MouseDown和MouseUp在空间附近,则单击只是一次单击.

总结

以上是内存溢出为你收集整理的在iOS和Android中获取指压的位置全部内容,希望文章能够帮你解决在iOS和Android中获取指压的位置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1110376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存