Gestenunterstützung in Metropolis-UI-Anwendungen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Entwickeln von Metropolis-UI-Anwendungen


Metropolis-UI-Anwendungen unterstützen die folgenden Gesten:

Benutzerdefinierte Gesten werden in Metropolis-UI-Anwendungen nicht unterstützt.

Die Gestenunterstützung wird in FireMonkey durch zwei unterschiedliche Windows-APIs bereitgestellt:

  • RealTimeStylus-API für Standardgesten (Einzelfingereingabe)
  • Windows Touch-API für interaktive Gesten (Mehrfingereingabe)

Unterstützung für interaktive Gesten von Windows 8

Wenn Sie eine Metropolis-UI-Anwendung unter Windows 8 ausführen, werden die meisten interaktiven Gesten von Windows 8 unterstützt:

Windows 8-Gesten Unterstützung in Metropolis-UI-Anwendungen

Tippen

Wird als Klicken unterstützt, von Windows 8 übersetzt

Drücken und halten

Nicht unterstützt

Ziehen

Nicht unterstützt *

Streifen

Nicht unterstützt *

Wenden

Wird als Drehen unterstützt

Finger zusammenführen

Wird als Zoom unterstützt (der Wert EventInfo.Distance wird verringert)

Finger auseinanderziehen

Wird als Zoom unterstützt (der Wert EventInfo.Distance wird vergrößert)

* Die Gesten Ziehen und Streifen können mit der Geste Schwenken in Metropolis-UI-Anwendungen durch Verfolgen der Position und Richtung der Schwenk-Bewegung simuliert werden.

Die unterstützten interaktiven Gesten sind in den folgenden Themen beschrieben:

Weitere Informationen über äquivalente interaktive Gesten finden Sie unter http://msdn.microsoft.com/de-de/library/windows/apps/hh761498.aspx#Eingabemodi.

Behandlung von Gesten mit Windows 8

Wenn in Windows 8 RealTimeStylus für ein Fenster aktiviert ist, werden alle Gesten über die RealTimeStylus-API von MS Windows 8 gesendet, und die Windows Touch-API meldet keine Ereignisse.

Zur Lösung dieses Problems wurde FireMonkey ein globales Flag hinzugefügt, das die Deaktivierung der RealTimeStylus-API ermöglicht. Wenn die RealTimeStylus-API deaktiviert ist, erkennt FireMonkey keine Standardgesten. Die Gestenereignisse werden in diesem Fall aus der Windows Touch-API einzeln über die Ereignisbehandlungsroutine OnGesture gemeldet.

Sie können diese Ereignisse auswerten, um die Geste zu ermitteln, die vom Benutzer ausgeführt wurde. Windows Touch-Gesten werden als mehrere Ereignisse gemeldet, die mit dem Ereignis TGestureEventInfo.Flag, das gfBegin enthält, beginnen und mit einem Ereignis enden, das gfEnd enthält. Weitere Informationen finden Sie unter FMX.Types.TInteractiveGestureFlag.

Fügen Sie den folgenden Code am Anfang der Hauptprogrammdatei ein, um die Meldung von Windows Touch-Ereignissen und interaktive Gesten zu aktivieren:

Delphi:

TPlatformServices.Current.GlobalFlags.Add(GlobalDisableStylusGestures, True);

C++:

TPlatformServices::Current->GlobalFlags->Add(GlobalDisableStylusGestures, true);

Zudem sollten den uses-Abschnitt bzw. die #include-Anweisungen FMX.Platform und FMX.Consts enthalten.

Dieses Vorgehen ist für Windows 7 nicht erforderlich und könnte auch für die endgültige Version von Windows 8 nicht nötig sein.

Siehe auch