Présentation de la gestion des mouvements

De RAD Studio
Aller à : navigation, rechercher

Remonter à VCL

VCL et FireMonkey utilisent le framework de gestion des mouvements de RAD Studio, qui est implémenté séparément dans les bibliothèques FireMonkey et VCL. Les classes, les méthodes et les propriétés VCL et FMX sont parallèles dans les deux bibliothèques, bien que les noms d'unités puissent être différents (par exemple, Vcl.Controls et FMX.Types). Sur toutes les plates-formes, VCL et FireMonkey prennent tous deux en charge l'utilisation des mouvements standard et les mouvements interactifs (Vcl.Controls.TInteractiveGesture et FMX.Types.TInteractiveGesture).

Pour plus d'informations sur l'utilisation des mouvements, voir les vidéos RAD Studio 2010 Touch Gesture Capabilities (EN) et Delphi 2010, Using Touch Features and Gestures (EN).

Qu'est-ce qu'un mouvement ?

Le framework de gestion des mouvements permet à vos applications VCL et FireMonkey d'utiliser les mouvements (mécanismes d'entrée alternative fournis par un matériel tactile). Un mouvement est un geste effectué à l'aide d'un périphérique tactile qui déclenche un événement ou une action.

Les principaux périphériques tactiles utilisés sont :

  • Le doigt
  • Le crayon
  • La souris

Options des composants de gestion des mouvements

La plupart des composants qui dérivent de TControl publient la propriété Touch et possèdent des options de gestion des mouvements. Après l'affectation d'un GestureManager à votre composant, vous pouvez voir les options de gestion des mouvements standard dans l'inspecteur d'objets, listées sous la propriété Touch. Pour plus de détails, voir Utilisation de la gestion des mouvements dans vos applications

Mouvements standard

La bibliothèque standard de mouvements comprend plus de 30 mouvements, tels que Left, Right, Scratchout, Circle et ChevronUp. Ces mouvements sont associés à l'énumération FMX.Types.TStandardGesture ou Vcl.Controls.TStandardGesture.

Pour obtenir une liste illustrée de tous les mouvements standard, voir Enumération TStandardGesture.

Mouvements interactifs

Les mouvements interactifs sont des mouvements à toucher multiple qui déclenchent continuellement l'événement OnGesture au fur et à mesure que le mouvement est effectué. Ces mouvements incluent les mouvements panoramiques, zoom, rotation, "cliquer avec deux doigts" et "cliquer-et-appuyer". Le paramètre EventInfo de l'événement OnGesture fournit des informations supplémentaires sur le mouvement en cours de réalisation, comme l'emplacement du toucher, l'angle de rotation, l'inertie d'un déplacement panoramique, et ainsi de suite. Les mouvements interactifs nécessitent un système d'exploitation multi-tactile et peuvent seulement être invoqués par un périphérique d'entrée tactile. Les mouvements interactifs sont associés à l'énumération FMX.Types.TInteractiveGesture ou Vcl.Controls.TInteractiveGesture.

Les InteractiveGestures pris en charge sont les suivants : "Zoom", "Panoramique", "Rotation", "Appuyer de façon prolongée", "Appuyer deux fois", "Cliquer avec deux doigts" et "Cliquer et Appuyer".

InteractiveGestureOptions (seulement VCL)

Les InteractiveGestureOptions sont uniquement prises en charge dans le framework VCL. Ces options sont associées à l'énumération ou Vcl.Controls.TInteractiveGestureOption, et vous permettent de contrôler des attributs spécifiques des mouvements interactifs.

Les InteractiveGestureOptions prises en charge sont les suivantes :

  • igoPanSingleFingerHorizontal
  • igoPanSingleFingerVertical
  • igoPanInertia
  • igoPanGutter
  • igoParentPassThrough

TabletOptions

Les TabletOptions sont uniquement prises en charge dans le framework VCL. Ces options, en particulier pour les entrées basées sur les doigts et le crayon, sont associées à l'énumération Vcl.Controls.TTabletOption. Les options de tablette (TabletOptions) sont prises en charge sur Tablet PC, Windows Vista et Windows 7.

Les TabletOptions prises en charge sont les suivantes :

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

L'événement OnGesture

Chaque composant VCL ou FireMonkey prenant en charge la gestion des mouvements prend aussi en charge l'événement Vcl.Controls.TControl.OnGesture ou FMX.Types.TControl.OnGesture.

L'événement OnGesture est déclenché dans les deux cas suivants :

  • Quand le moteur de gestion des mouvements reconnaît un mouvement, comme suit :
    • Les mouvements standard (la bibliothèque de 34 mouvements disponibles grâce au Gestionnaire de mouvements)
    • Vos propres mouvements personnalisés (créés à l'aide du Concepteur de mouvements personnalisés)
    • Les mouvements recensés (mouvements stockés dans un package ou une DLL)
  • Quand votre application utilise un mouvement interactif

OnGesture est déclenché quand le moteur de gestion des mouvements a tenté une correspondance. L'événement est aussi déclenché quand la correspondance échoue avec un ID de mouvement que vous devez gérer (comme Vcl.Controls.TCustomGestureCollectionItem.GestureID ou FMX.Types.TCustomGestureCollectionItem.GestureID).

Vous associez des actions à des mouvements spécifiques dans l'inspecteur d'objets. Par souci de cohérence, utilisez les mêmes mouvements pour les mêmes actions à travers tous les composants applicables de votre application, et au sein de vos applications.

Pour de plus amples informations, voir Vcl.Controls.TControl.OnGesture ou FMX.Controls.TControl.OnGesture.

Exemples de code

Le composant TGestureManager

Chaque composant qui utilise des mouvements standard ou des mouvements personnalisés doit être associé à un Gestionnaire de mouvements, tel que FMX.Gestures.TGestureManager ou Vcl.Touch.GestureMgr.TGestureManager. Pour utiliser des mouvements interactifs tels qu'un zoom ou une rotation dans un composant, vous ne devez pas associer le composant à un gestionnaire de mouvements.

Lors de la sélection du composant à utiliser, sachez que les grands composants (tels que les composants panneau et liste) fonctionnent mieux avec la gestion des mouvements, tandis que des composants plus petits comme les boutons ou les cases à cocher sont typiquement peu adaptés à l'utilisation des mouvements.

Ajoutez d'abord un TGestureManager à votre composant panneau ou liste (sur la Palette d'outils, sélectionnez TGestureManager dans la catégorie Mouvements).

La base abstraite de tous les composants du gestionnaire de mouvements est Vcl.Controls.TCustomTouchManager.GestureManager.

Sélection des mouvements avec l'éditeur des propriétés de la gestion des mouvements

Vous pouvez accéder à l'éditeur des propriétés de la gestion des mouvements quand un GestureManager est assigné à l'élément de conception actuellement sélectionné. Sur l'inspecteur d'objets, ouvrez le noeud Touch, puis le noeud Gestures. Pour ouvrir l'éditeur des propriétés de la gestion des mouvements, cliquez sur les points de suspension (ProjectOptionsEllipsis.jpg) associés au noeud Gestures. Lorsque vous travaillez, vous pouvez laisser ouverte la fenêtre de l'éditeur de propriétés en tant que référence, palette de mouvements et écran de test.

Sur la fenêtre de l'éditeur de propriétés (intitulée "Sélectionner des mouvements"), vous pouvez :

  • Sélectionner les mouvements à inclure dans votre application et assigner une action à chaque mouvement.
  • Accéder à la boîte de dialogue Personnaliser les mouvements, qui vous permet de gérer et de créer des mouvements personnalisés.

Remarque : La fenêtre Sélectionner des mouvements n'est pas prise en charge par FireMonkey.

Affectation d'actions aux mouvements

Vous pouvez ajouter rapidement des actions à vos mouvements en ajoutant TActionList ou TActionManager à votre fiche. Assignez ensuite des actions à chaque mouvement en utilisant l'éditeur des propriétés de la gestion des mouvements (Sélectionner des mouvements) et l'inspecteur d'objets, ou juste l'inspecteur d'objets, comme suit :

  • Dans la boîte de dialogue Sélectionner des mouvements, sélectionnez un mouvement à utiliser, puis assignez une action au mouvement en utilisant la liste déroulante de l'inspecteur d'objets.
  • Dans l'inspecteur d'objets, sélectionnez un mouvement à utiliser (ou cherchez un mouvement que vous avez activé dans la boîte de dialogue Sélectionner des mouvements). La liste déroulante de la colonne valeur présente les actions disponibles, en particulier Nouvelles actions standard. Sélectionnez dans la liste une action à associer au mouvement.

Remarque : Si vous n'ajoutez pas TActionList ou TActionManager à votre fiche, vous ne pouvez pas choisir depuis Nouvelles actions standard, et vous devez écrire votre propre gestionnaire d'événement pour l'événement OnGesture.

Création de mouvements personnalisés (VCL seulement)

La création de mouvements personnalisés est prise en charge seulement dans le framework VCL. Vous pouvez créer vos propres mouvements personnalisés dans le Concepteur de mouvements personnalisésConcepteur de mouvements personnalisés.

Si un mouvement que vous dessinez sur la boîte de dialogue Personnaliser les mouvements est trop similaire à l'un des autres mouvements utilisés dans l'application, un avertissement est affiché et vous pouvez faire le point sur le conflit. Des conflits avec des mouvements existants peuvent causer des erreurs dans votre application. Vous pouvez aussi ajuster la sensibilité de la comparaison entre le mouvement personnalisé que vous créez ou visualisez et les autres mouvements.

Vous pouvez gérer vos mouvements personnalisés sur la boîte de dialogue Personnaliser les mouvements. Des boutons vous permettent de modifier, supprimer, importer et exporter des mouvements. Pour de plus amples informations, voir Création de mouvements personnalisés.

Autres composants de gestion des mouvements

  • TGestureListView peut être associé à un TGestureManager pour afficher une liste des mouvements dans le gestionnaire de mouvements. Les mouvements peuvent aussi être ajoutés ou retirés par programmation afin de permettre la personnalisation.
  • TGesturePreview est le même contrôle d'aperçu que celui utilisé dans l'EDI (en double-cliquant sur un mouvement dans la boîte de dialogue Sélectionner des mouvements) et il affiche une animation du mouvement.
  • TGestureRecorder est une surface permettant de dessiner un mouvement et de l'enregistrer pour un usage ultérieur. Vous pouvez utiliser ce composant pour construire des applications qui permettent à vos clients de personnaliser les mouvements associés à certaines actions.

Voir aussi