Überblick zu Gesten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu VCL

Die VCL und FireMonkey verwenden das Gesten-Framework von RAD Studio, das in den FireMonkey- und VCL-Bibliotheken separat implementiert ist. Die auf VCL- und FMX-Klassen, -Methoden und -Eigenschaften bezogenen Gesten entsprechen sich in den beiden Bibliotheken, obwohl die Unit-Namen voneinander abweichen können (z.B. Vcl.Controls und FMX.Types). Auf allen Plattformen unterstützen die VCL und FireMonkey Standardgesten und interaktive Gesten (Vcl.Controls.TInteractiveGesture und FMX.Types.TInteractiveGesture).

Weitere Informationen zu Gesten erhalten Sie in den Videos RAD Studio 2010 Touch Gesture Capabilities (EN) und Delphi 2010, Using Touch Features and Gestures (EN).

Was ist eine Geste?

Das Gesten-Framework aktiviert VCL- und FireMonkey-Programme für die Verwendung von Gesten (alternativer Eingabemechanismus für Touch-Hardware). Eine Geste ist eine Bewegung, die mithilfe eines Touch-Gerätes ausgeführt wird und ein Ereignis oder eine Aktion auslöst.

Für die Touch-Eingabe wird überwiegend Folgendes verwendet:

  • Finger
  • Stift
  • Maus

Komponentenoptionen für Gesten

Die meisten von TControl abgeleiteten Komponenten veröffentlichen die Eigenschaft Touch und verfügen über Optionen für Gesten. Wenn Sie einer Komponente einen GestureManager zugeordnet haben, werden die Standardoptionen für Gesten im Objektinspektor unter der Eigenschaft Touch aufgeführt. Weitere Einzelheiten finden Sie unter Verwenden von Gesten in Anwendungen.

Standardgesten

Die Standardgestenbibliothek besteht aus über 30 Gesten, wie z.B. Left, Right, Scratchout, Circle und ChevronUp. Diese Gesten sind der Aufzählung FMX.Types.TStandardGesture oder Vcl.Controls.TStandardGesture zugeordnet.

Eine illustrierte Liste aller Standardgesten finden Sie unter Aufzählung der Standardgesten.

Interaktive Gesten

Interaktive Gesten sind Mehrfingerbewegungen, die das Ereignis OnGesture fortlaufend auslösen, während die Geste ausgeführt wird. Zu diesen Gesten zählen: Zoom, Drehen, mit zwei Fingern antippen sowie Antippen und Drücken. Der Parameter EventInfo des Ereignisses OnGesture stellt weitere Informationen über die ausgeführte Geste bereit, wie z.B. die Position des Berührungspunkts, Drehwinkel, Trägheit der Drehbewegung usw. Interaktive Gesten erfordern ein für Mehrfingereingaben aktiviertes Betriebssystem und können nur von einem Touch-Eingabegerät ausgelöst werden. Interaktive Gesten sind der Aufzählung FMX.Types.TInteractiveGesture oder Vcl.Controls.TInteractiveGesture zugeordnet.

Folgende InteractiveGestures werden unterstützt: "Zoom", "Verschieben", "Drehen", "Antippen mit zwei Fingern" und "Drücken und Antippen".


InteractiveGestureOptions

InteractiveGestureOptions werden nur in dem VCL-Framework unterstützt. Diese Optionen sind der Aufzählung Vcl.Controls.TInteractiveGestureOption zugeordnet und ermöglichen die Steuerung bestimmter Attribute von interaktiven Gesten.

Folgende InteractiveGestureOptions werden unterstützt:

  • igoPanSingleFingerHorizontal
  • igoPanSingleFingerVertical
  • igoPanInertia
  • igoPanGutter
  • igoParentPassThrough

TabletOptions

TabletOptions werden nur in dem VCL-Framework unterstützt. Diese für Finger- oder Stifteingaben spezifischen Optionen sind der Aufzählung Vcl.Controls.TTabletOption zugeordnet. TabletOptions werden von Tablet PC, Windows Vista und Windows 7 unterstützt.

Folgende TabletOptions werden unterstützt:

  • toPressAndHold
  • toPenTapFeedback
  • toPenBarrelFeedback
  • toTouchUIForceOn
  • toTouchUIForceOff
  • toTouchSwitch
  • toFlicks
  • toSmoothScrolling
  • toFlickFallbackKeys

Das Ereignis OnGesture

Jede VCL- oder FireMonkey-Komponente, die Gesten unterstützt, unterstützt auch entweder das Ereignis Vcl.Controls.TControl.OnGesture oder das Ereignis FMX.Controls.TControl.OnGesture.

Das Ereignis OnGesture wird in zwei Fällen ausgelöst:

  • Wenn die Gesten-Engine Gesten wie die folgenden erkennt:
    • Standardgesten (Bibliothek mit 34 Gesten, verfügbar über den Gestenmanager)
    • Eigene Gesten (die mit dem Designer für benutzerdefinierte Gesten erstellt wurden)
    • Registrierte Gesten (Gesten, die in einem Package oder einer DLL gespeichert sind)
  • Wenn die Anwendung eine interaktive Geste verwendet

OnGesture wird ausgelöst, nachdem die Gesten-Engine eine Übereinstimmung versucht. Das Ereignis wird auch ausgelöst, wenn die Übereinstimmung mit einer Gesten-ID (wie Vcl.Controls.TCustomGestureCollectionItem.GestureID oder FMX.Types.TCustomGestureCollectionItem.GestureID) misslingt, die Sie behandeln sollten.

Im Objektinspektor ordnen Sie bestimmten Gesten Aktionen zu. Aus Konsistenzgründen sollten Sie in allen betreffenden Komponenten Ihrer Anwendungen für gleiche Aktionen dieselben Gesten einsetzen.

Weitere Informationen finden Sie unter Vcl.Controls.TControl.OnGesture oder FMX.Controls.TControl.OnGesture.

Codebeispiele

Die Komponente "TGestureManager"

Allen Komponenten, die Standardgesten oder benutzerdefinierte Gesten verwenden, muss ein Gestenmanager, wie FMX.Gestures.TGestureManager oder Vcl.Touch.GestureMgr.TGestureManager, zugeordnet werden. Beachten Sie, dass um Interaktive Gesten in einer Komponente zu verwenden, müssen Sie der Komponente einen Gestenmanager zuordnen.

Bedenken Sie bei der Auswahl der Komponente, dass große Komponenten (wie Tafel- und Listen-Komponenten) besser mit Gesten arbeiten, während kleinere Komponenten, wie z.B. Schaltflächen oder Kontrollkästchen, sich nicht gut für die Verwendung von Gesten eignen.

Fügen Sie zuerst der Tafel- oder Listen-Komponente einen TGestureManager hinzu (wählen Sie in der Tool-Palette aus der Kategorie Gesten die Komponente TGestureManager aus).

Die abstrakte Basisklasse für alle VCL-Gestenmanager-Komponenten ist Vcl.Controls.TCustomTouchManager.GestureManager.

Auswählen von Gesten mit dem Editor für Gesteneigenschaften

Wenn dem aktuell ausgewählten Designelement ein GestureManager zugeordnet ist, können Sie auf den Editor für Gesteneigenschaften zugreifen. Öffnen Sie im Objektinspektor den Knoten Touch und dann den Knoten Gestures. Zum Öffnen des Editors für Gesteneigenschaften klicken Sie neben dem Knoten Gestures auf die Ellipse (ProjectOptionsEllipsis.jpg). Sie können das Fenster des Eigenschaftseditors, die Gestenpalette und die Testansicht geöffnet lassen, während Sie weiterarbeiten.

Im Fenster des Eigenschaftseditors (mit dem Titel Gesten auswählen) können Sie:

  • Die gewünschten Gesten auswählen und jeder Geste eine Aktion zuordnen.
  • Auf das Dialogfeld Benutzerdefinierte Gesten zugreifen, in dem Sie benutzerdefinierte Gesten erstellen und verwalten können.

Hinweis: Das Gesten auswählen-Fenster wird von FireMonkey nicht unterstützt.

Zuordnen von Aktionen zu Gesten

Durch Einfügen einer TActionList oder eines TActionManager in ein Formular können Sie den Gesten schnell Aktionen zuordnen. Ordnen Sie anschließend jeder Geste mit dem Editor für Gesteneigenschaften (Gesten auswählen) und dem Objektinspektor oder einfach nur mit dem Objektinspektor folgendermaßen Aktionen zu:

  • Wählen Sie im Dialogfeld Gesten auswählen die gewünschte Geste aus, und ordnen Sie der Geste mithilfe der Dropdown-Liste im Objektinspektor eine Aktion zu.
  • Wählen Sie im Objektinspektor die gewünschte Geste aus (oder suchen Sie eine Geste, die Sie im Dialogfeld Gesten auswählen aktiviert haben). Die Dropdown-Liste in der Werte-Spalte führt die verfügbaren Aktionen unter Neue Standardaktion auf. Wählen Sie aus der Liste die Aktion aus, die der Geste zugeordnet werden soll.

Hinweis: Wenn Sie Ihrem Formular keine TActionList oder keinen TActionManager hinzugefügt haben, steht die Liste Neue Standardaktion nicht zur Verfügung. In diesem Fall müssen Sie eine Behandlungsroutine für das Ereignis OnGesture schreiben.

Erstellen von benutzerdefinierten Gesten (Nur VCL)

Das Erstellen von benutzerdefinierten Gesten wird nur in dem VCL-Framework unterstützt. Eigene Gesten können Sie im Dialogfeld Designer für benutzerdefinierte Gesten erstellen.

Wenn eine Geste, die Sie im Dialogfeld Benutzerdefinierte Gesten zeichnen, einer anderen in der Anwendung vorhandenen Geste zu ähnlich ist, wird eine Warnung angezeigt. Sie können dann die in Konflikt stehenden Gesten überprüfen. Konflikte mit vorhandenen Gesten können in Ihrer Anwendung Fehler verursachen. Sie können auch die Sensitivität des Vergleichs zwischen der benutzerdefinierten Geste, die Sie erstellen oder anzeigen, und den anderen Gesten einstellen.

Eigene Gesten verwalten Sie im Dialogfeld Benutzerdefinierte Gesten. Mithilfe der Schaltflächen können Sie Gesten bearbeiten, löschen, importieren und exportieren. Weitere Informationen finden Sie unter Erstellen von benutzerdefinierten Gesten.

Weitere Gesten-Komponenten

  • TGestureListView kann einem TGestureManager zur Anzeige einer Liste mit den Gesten im Gestenmanager zugeordnet werden. Gesten können auch programmseitig hinzugefügt oder entfernt werden, um individuelle Anpassungen zu ermöglichen.
  • TGesturePreview ist dasselbe Vorschau-Steuerelement, das auch die IDE verwendet (wenn Sie eine Geste im Dialogfeld Gesten auswählen doppelt anklicken). Es zeigt eine Animation der auszuführenden Geste an.
  • TGestureRecorder ist eine Oberfläche zum Zeichnen und Aufzeichnen einer Geste. Mit dieser Komponente können Sie Anwendungen erstellen, die Benutzern ermöglichen, bestimmten Aktionen zugeordnete Gesten anzupassen.

Siehe auch