Mouvements dans FireMonkey
Remonter à Guide des applications FireMonkey
Les mouvements dans les applications multi-périphériques sont très similaires aux mouvements dans la VCL. Un mouvement est considéré comme étant destiné au contrôle qui se trouve sous le doigt (pour Windows ou les systèmes mobiles) ou sous le curseur de la souris (pour Windows et macOS). Par ailleurs, le mouvement peut être géré par l'un des parents du contrôle (dans la hiérarchie, le premier qui gère le mouvement).
Sommaire
Il y a deux types de mouvements :
- Mouvements standard :
- Les mouvements standard (Haut, Bas, Triangle, etc.) sont équivalents aux mouvements d'application sur Windows et aux séquences multi-tactiles sur macOS et iOS. Les mouvements standard sont réalisés avec un doigt sur Windows, et avec deux doigts sur macOS.
- Dès qu'un mouvement est terminé (c'est-à-dire lorsque l'utilisateur relève le doigt), l'événement OnGesture est déclenché (si un mouvement standard a été reconnu).
- Mouvements interactifs :
- Les mouvements interactifs sont des mouvements multi-tactiles (Zoom, Rotation, etc.) qui sont équivalents aux mouvements système sur Windows, et aux mouvements sur macOS, iOS et Android. Chaque fois que les doigts se déplacent sur la surface tactile, un événement OnGesture est déclenché.
- FireMonkey utilise les quatre mouvements standard Haut, Bas, Gauche et Droite comme équivalents du mouvement interactif Balayer (sur macOS, iOS, Android et Windows 8).
Plates-formes pour les mouvements
Cette rubrique décrit les mouvements pour les plates-formes de bureau et les plates-formes mobiles :
- Toutes les plates-formes de bureau prennent en charge les mouvements.
- Pour les écrans tactiles Windows, même si le doigt est relevé de l'écran en dehors des limites du contrôle souhaité, le mouvement est toujours envoyé à ce contrôle.
- Toutes les plates-formes mobiles prennent en charge les mouvements interactifs. Voir Activation des mouvements interactifs.
Comment utiliser les mouvements avec FireMonkey
Pour qu'un contrôle soit capable d'utiliser les mouvements, il doit disposer de la propriété Touch. TForm et de nombreux objets dérivés de TFmxObject prennent en charge cette propriété.
Activation des mouvements standard
Pour ajouter la prise en charge des mouvements standard pour un contrôle, vous devez effectuer les opérations suivantes :
- Sur le Concepteur de fiches, ajoutez un TGestureManager au contrôle auquel vous souhaitez attribuer la prise en charge des mouvements. Donnez un nom unique au GestureManager ou utilisez simplement son nom assigné, tel que GestureManager1.
- Dans l'inspecteur d'objets, assignez le TGestureManager dans le champ Touch | GestureManager du contrôle.
- Dans l'inspecteur d'objets, sélectionnez les mouvements personnalisés spécifiques depuis le champ Touch | Gestures du contrôle.
- Implémentez la procédure d'événement OnGesture pour ce contrôle et gérez le EventInfo.GestureId approprié.
Sélection d'un mouvement standard
Voici les mouvements de Enumération TStandardGesture tels qu'ils se présentent à vous lorsque vous les sélectionnez dans l'inspecteur d'objets :
Implémentation du gestionnaire d'événement OnGesture
Voici un exemple de procédure OnGesture pour un TPanel nommé "Panel1" et placé sur un TForm nommé "Form 28" (il y a aussi un TMemo nommé "TMemo1" sur la fiche). Le gestionnaire d'événement utilise FMX.Gestures.GestureToIdent :
Dans 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;
Dans 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;
}
}
Le code ci-dessus écrit dans le mémo le nom du mouvement pour lequel l'événement a été déclenché (Haut, Bas, etc.).
Activation des mouvements interactifs
Pour ajouter la prise en charge des mouvements interactifs à un contrôle :
- Dans l'inspecteur d'objets, sélectionnez les mouvements interactifs spécifiques depuis le champ Touch | InteractiveGestures du contrôle.
- Implémentez une procédure d'événement OnGesture pour ce contrôle et gérez le EventInfo.GestureId approprié.
Propriétés de mouvements initiales pour un projet Android | Mouvements spécifiques activés |
---|---|
Différences entre les mouvements de base pris en charge dans FireMonkey et dans la VCL
- FireMonkey prend en charge TouchTargetExpansion, une propriété qui étend la cible tactile d'un contrôle en ajoutant une zone spécifiée autour du contrôle ; cette zone peut être activée tactilement comme si elle faisait partie du contrôle. (La VCL ne prend pas en charge TouchTargetExpansion.)
- Les mouvements interactifs pris en charge sont décrits dans FMX.Types.TInteractiveGestures et dans Vcl.Controls.TInteractiveGestures.
- Sur les plates-formes Windows :
- FireMonkey prend en charge les mouvements interactifs suivants : Zoom, Panoramique, Rotation, Cliquer avec deux doigts, Appuyer et cliquer, Double appui et Appui prolongé. (Cela est identique à la VCL.)
- Sur macOS :
- FireMonkey prend uniquement en charge les mouvements interactifs Zoom, Panoramique et Rotation. (La VCL ne prend pas en charge le développement sur Mac.)
- Sur iOS :
- FireMonkey prend en charge Zoom, Panoramique, Rotation, Cliquer avec deux doigts, Double appui et Appui prolongé (La VCL ne prend pas en charge le développement sur iOS.)
- Sur Android :
- FireMonkey prend en charge les mêmes mouvements sur Android que sur les plates-formes iOS : Zoom, Panoramique, Rotation, Cliquer avec deux doigts, Double appui, et Appui prolongé.
- Sur les plates-formes Windows :
- FireMonkey ne prend pas en charge les mouvements personnalisés. (La VCL prend en charge les mouvements personnalisés.)
- Les propriétés TabletOptions ne sont pas prises en charge dans FireMonkey.
- Les mouvements de la souris fonctionnent seulement sur Windows 7 et Windows 8.
- Sur Windows 8, les mouvements interactifs et les mouvements standard ne peuvent pas être utilisés en même temps.
- Pour de plus amples informations sur la prise en charge des mouvements Windows 8, voir Prise en charge des mouvements dans les applications Metropolis UI.
Voir aussi
- Présentation de la gestion des mouvements
- Utilisation de la gestion des mouvements dans vos applications
- Prise en charge de la cible tactile dans FireMonkey
- Enumération TStandardGesture
- FMX.Controls.TControl.Touch
- FMX.Controls.TControl.OnGesture
- FMX.Types.TGestureEventInfo
- FMX.Types.TControl.TouchTargetExpansion
- FMX.Types.TInteractiveGesture
- Extraits de code mobile