我想为我的windows应用程序使用交互式手势事件(鼠标和触摸)。
虽然Ongesture(sender:tobject;const eventinfo:tgestureeventinfo;var handled:boolean);
事件被触发,当用两个手指触摸缩放时,我总是得到eventinfo.gestureid为0。但我得到了标准的手势。
注意:我使用DelphiXE7进行开发,使用Windows8.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这样的手势,因此不会为它们触发任何事件。
您可以通过组件的touch属性启用它们,该属性应该对这些手势做出反应。

关于windows - 无法在Delphi XE7中找到用于vcl组件的交互式手势事件,例如igiZoom,igiPan或igiRotate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31017942/

10-15 04:21