2017-05-15 4 views
0

Ich versuche, interaktive Gestenerkennung (insbesondere Zoomen und Schwenken) für meine Delphi/C++ Builder 10,2 Tokyo App arbeiten.OnGesture-Ereignisse sind leer

Was ich bisher getan habe:

  1. hinzufügen TGestureManager, GestureManager1 meine Form.
  2. Stellen Sie die Touch.GestureManager des Formulars auf GestureManager1 ein.
  3. Lassen Sie alles unter Touch.Gestures deaktiviert, weil ich interaktive Gesten (Zoom und Pan), nicht "Standard" Gesten wollen.
  4. Stellen Sie sicher, dass Touch.InteractiveGestures.igZoom aktiviert ist.
  5. Weisen Sie einen OnGesture Event-Handler zu.

Die OnGesture Ereignishandler wird wie erwartet ausgelöst, aber die Veranstaltung EventInfo.GestureID (die die Art der Geste geben soll - Pan, Zoom, etc.) ist immer 0.

Was ich tue, falsch ?

Antwort

1

„Standard“ Gesten (die verschiedenen Linien und Formen unter Touch.Gestures.Standard und „interaktiv“ Gesten (Schwenken, Zoomen, Drehen) sich gegenseitig aus.

auf „Standard“ oder „custom“ Gesten“zu verarbeiten, fügen Sie ein . TGestureManager

"interaktiv" Gesten empfangen zu können, müssen Sie die TGestureManager entfernen This Embarcadero DocWiki article, die erklärt, wie Gesten in VCL und Firemonkey arbeiten, sagt zwar:.

Um Interactive Gestures wie Zoomen und Drehen in einer Komponente zu verwenden, müssen Sie die Komponente keinem Gestenmanager zuordnen.

This Intel article enthält weitere Details zu den verschiedenen Gestenschnittstellen von Windows. Was Delphi "interaktive" Gesten nennt, entspricht der Windows-Nachricht WM_GESTURE.