OnGesture事件是空的

时间:2017-05-15 01:21:18

标签: windows delphi c++builder gesture

我正在尝试为我的Delphi / C ++ Builder 10.2东京应用程序进行交互式手势识别(特别是缩放和平移)。

到目前为止我做了什么:

  1. 将TGestureManager GestureManager1添加到我的表单。
  2. 将表单的Touch.GestureManager设置为GestureManager1
  3. 取消选中Touch.Gestures下的所有内容,因为我需要交互式手势(缩放和平移),而不是“标准”手势。
  4. 确保选中Touch.InteractiveGestures.igZoom
  5. 分配OnGesture事件处理程序。
  6. OnGesture事件处理程序按预期触发,但事件的EventInfo.GestureID(应该给出手势类型 - 平移,缩放等)始终为0.

    我做错了什么?

1 个答案:

答案 0 :(得分:1)

“标准”手势(Touch.Gestures.Standard和“交互式”手势下的各种线条和形状(平移,缩放,旋转)是互斥的。

要处理“标准”或“自定义”手势,请添加TGestureManager

要接收“互动”手势,您需要删除 TGestureManagerThis Embarcadero DocWiki article,解释了手势在VCL和FireMonkey中的工作原理,具体说:

  

为了在组件中使用Interactive Gestures(如缩放和旋转),您无需将组件与手势管理器关联。

This Intel article提供了有关Windows各种手势界面的更多详细信息。 Delphi称之为“交互式”手势的内容与Windows“WM_GESTURE消息相对应。