Gesten in FireMonkey
Nach oben zu FireMonkey-Anwendungshandbuch
Gesten in geräteübergreifenden Anwendungen entsprechen weitgehend den Gesten in der VCL. Eine Geste ist für das Steuerelement bestimmt, das sich unter dem Finger (bei Windows und mobilen Anwendungen) oder unter dem Mauscursor (bei Windows und macOS) befindet. Alternativ kann die Geste auch von einem dem Steuerelement übergeordneten Objekt (in der Hierarchie das erste, das die Geste behandeln kann) behandelt werden.
Inhaltsverzeichnis
Es gibt zwei Typen von Gesten:
- Standardgesten:
- Die Standardgesten (Nach oben, Nach unten, Dreieck usw.) entsprechen den Anwendungsgesten unter Windows und den Mehrfinger-Folgen unter macOS und iOS. Standardgesten werden unter Windows mit einem Finger und unter macOS mit zwei Fingern ausgeführt.
- Wenn die Geste abgeschlossen ist (wenn der Benutzer den Finger hebt), wird das Ereignis OnGesture ausgelöst (sofern eine Standardgeste erkannt wurde).
- Interaktive Gesten:
- Bei den interaktiven Gesten handelt es sich um Mehrfingergesten (Zoom, Drehen usw.), die den Systemgesten unter Windows und den Gesten unter macOS, iOS und Android entsprechen. Bei jeder Fingerbewegung auf der Touch-Oberfläche wird ein OnGesture-Ereignis ausgelöst.
- FireMonkey verwendet die vier Standardgesten Nach oben, Nach unten, Nach links und Nach rechts als Äquivalent zur interaktiven Wischen-Geste (unter macOS, iOS, Android und Windows 8).
Plattformen für Gesten
In diesem Thema werden Gesten für Desktop- und mobile Plattformen beschrieben:
- Alle Desktop-Plattformen unterstützten Gesten.
- Bei Windows-Touch-Screens wird, auch wenn der Finger außerhalb der Begrenzungen des betreffenden Steuerelements gehoben wird, die Geste an dieses Steuerelement gesendet.
- Alle mobilen Plattformen unterstützten interaktive Gesten. Siehe Aktivieren von interaktiven Gesten.
Verwendung von Gesten in FireMonkey
Damit ein Steuerelement mit Gesten verwendet werden kann, muss es über die Eigenschaft Touch verfügen. TForm und viele von TFmxObject abgeleitete Objekte haben diese Eigenschaft.
Aktivieren von Standardgesten
Führen Sie zum Hinzufügen der Unterstützung von Standardgesten für ein Steuerelement folgende Schritte aus:
- Fügen Sie im Formular-Designer dem Steuerelement, das für Gesten aktiviert werden soll, einen TGestureManager hinzu. Weisen Sie der GestureManager-Instanz einen eindeutigen Namen zu, oder verwenden Sie einfach den zugewiesenen Namen, z. B. GestureManager1.
- Weisen Sie im Objektinspektor im Feld Touch | GestureManager des Steuerelements das TGestureManager-Objekt zu.
- Wählen Sie im Objektinspektor die spezifische(n) benutzerdefinierte(n) Geste(n) im Feld Touch | Gestures des Steuerelements aus.
- Implementieren Sie die Ereignisbehandlungsroutine OnGesture für das Steuerelement, und behandeln Sie die entsprechende EventInfo.GestureId.
Auswählen einer Standardgeste
Diese Gesten aus der Aufzählung der Standardgesten können Sie im Objektinspektor auswählen:
Implementieren der OnGesture-Ereignisbehandlungsroutine
Im Folgenden finden Sie ein Beispiel einer OnGesture-Prozedur für die TPanel-Komponente "Panel1", die sich auf dem TForm-Formular "Form 28" befindet (außerdem enthält das Formular noch das TMemo-Feld "TMemo1"). Die Ereignisbehandlungsroutine verwendet FMX.Gestures.GestureToIdent:
In Delphi:
procedure TForm28.Panel1Gesture(Sender: TObject;
const EventInfo: TGestureEventInfo; var Handled: Boolean);
var
S: string;
begin
if GestureToIdent(EventInfo.GestureID, S) then begin
Memo1.Lines.Add(S);
Handled := True;
end;
end;
In C++:
void __fastcall TForm1::Panel1Gesture(TObject *Sender,
const TGestureEventInfo &EventInfo, bool &Handled) {
String s;
if (GestureToIdent(EventInfo.GestureID, s)) {
Memo1->Lines->Add(s);
Handled = true;
}
}
Mit dem obigen Code wird der Name der Geste (Up, Down usw.), für die das Ereignis ausgelöst wurde, in das Memofeld geschrieben.
Aktivieren von interaktiven Gesten
So fügen Sie die Unterstützung von interaktiven Gesten für ein Steuerelement hinzu:
- Wählen Sie im Objektinspektor die spezifische(n) interaktive(n) Geste(n) aus dem Feld Touch | InteractiveGestures des Steuerelements aus.
- Implementieren Sie eine OnGesture-Ereignisbehandlungsroutine (Prozedur) für dieses Steuerelement, und behandeln Sie die entsprechende EventInfo.GestureId.
Anfangseigenschaften für Gesten in einem Android-Projekt | Aktivierung bestimmter Gesten |
---|---|
Unterschiede zwischen Gesten in FireMonkey und in der VCL
- FireMonkey unterstützt TouchTargetExpansion, eine Eigenschaft, die das Touch-Ziel eines Steuerelements durch Hinzufügen einer speziellen Zone um das Steuerelement erweitert, die für Berührungen aktiviert werden kann, so als ob sie Teil des Steuerelements ist. (Die VCL unterstützt TouchTargetExpansion nicht.)
- Unterstützte interaktive Gesten sind unter FMX.Types.TInteractiveGestures und Vcl.Controls.TInteractiveGestures beschrieben.
- Windows-Plattformen:
- FireMonkey unterstützt die folgenden interaktiven Gesten: Zoom, Verschieben, Drehen, Antippen mit zwei Fingern, Drücken und Antippen, Doppeltippen und Langes Antippen. (Entspricht der Unterstützung durch die VCL.)
- macOS:
- FireMonkey unterstützt nur die interaktiven Gesten: Zoom, Verschieben und Drehen . (Die VCL unterstützt die Entwicklung auf dem Mac nicht.)
- iOS:
- FireMonkey unterstützt die interaktiven Gesten Zoom, Verschieben, Drehen, Antippen mit zwei Fingern, Doppeltippen und Langes Antippen (die VCL unterstützt die Entwicklung unter iOS nicht).
- Android:
- FireMonkey unterstützt auf der Android-Plattform dieselben Gesten wie auf der iOS-Plattform: Zoom, Verschieben, Drehen, Antippen mit zwei Fingern, Doppeltippen und Langes Antippen.
- Windows-Plattformen:
- Benutzerdefinierte Gesten werden derzeit von FireMonkey nicht unterstützt. (Die VCL unterstützt benutzerdefinierte Gesten.)
- TabletOptions werden in FireMonkey nicht unterstützt.
- Mausgesten funktionieren nur unter Windows 7 und Windows 8.
- Unter Windows 8 können interaktive und Standardgesten nicht gleichzeitig verwendet werden.
- Weitere Informationen zur Unterstützung von Windows 8-Gesten finden Sie unter Gestenunterstützung in Metropolis-UI-Anwendungen.
Siehe auch
- Unterstützung für Touch-Ziele in FireMonkey
- Aufzählung der Standardgesten
- FMX.Controls.TControl.Touch
- FMX.Controls.TControl.OnGesture
- FMX.Types.TGestureEventInfo
- FMX.Types.TControl.TouchTargetExpansion
- FMX.Types.TInteractiveGesture
- Codefragmente für die mobile Entwicklung