在 delphi XE7 中找不到 vcl 组件的交互式手势事件,如 igiZoom、igiPan 或 igiRotate

Not able to find the interactive gesture events like igiZoom, igiPan or igiRotate for vcl component in delphi XE7

我想为我的 windows 应用程序(鼠标和触摸)使用交互式手势事件。 虽然 OnGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); 事件被触发,同时用两根手指触摸缩放,我总是得到 EventInfo.gestureId 是 0。但我得到的是标准手势。 注意:我使用 Delphi XE7 进行开发,windows 8.1 触摸设备进行测试。

procedure TForm1.GISGesture(Sender: TObject; 
  const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin 
    if (EventInfo.GestureID = igipan) or(EventInfo.GestureID = igiZoom)  then
    begin
      ShowMessage('zoom or pan');
    end;
end;

这里 EventInfo.GestureID 每当我尝试用两个手指或平移进行缩放时都是 0。

在 VCL 中,像 igZoom 和 igRotate 这样的手势在默认情况下是禁用的,因此不会为它们触发任何事件。

您可以通过组件的触摸 属性 启用它们,该组件会对这些手势做出反应。