我想为我的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/