Prise en charge des mouvements dans les applications Metropolis UI
Remonter à Développement des applications Metropolis UI
Les applications metropolis UI les mouvements suivants dans les applications Metropolis UI :
- Trente-quatre mouvements standard - voir Enumération TStandardGesture.
- Cinq mouvements interactifs - voir Vcl.Controls.TInteractiveGesture ou FMX.Types.TInteractiveGesture.
Les mouvements personnalisés ne sont pas supportés dans les applications Metropolis UI.
Le support des mouvements dans FireMonkey est fourni par le biais de deux API différentes :
- API RealTimeStylus pour les mouvements standard (toucher simple)
- API Windows Touch pour les mouvements interactifs (toucher multiple)
Support des mouvements interactifs Windows 8
Lorsque vous exécutez une application Metropolis UI sur Windows 8, la plupart des mouvements interactifs de Windows 8 sont supportés, comme suit :
Mouvement Windows 8 | Support dans les applications Metropolis UI |
---|---|
Appuyer |
Supporté en tant que clic, traduit par Windows 8 |
Appuyer de façon prolongée |
Non supporté |
Glisser |
Non supporté* |
Balayer |
Non supporté* |
Tourner |
Supporté en tant que rotation |
Pincer |
Supporté en tant que zoom (la valeur de EventInfo.Distance diminue) |
Etirer |
Supporté en tant que zoom (la valeur de EventInfo.Distance augmente) |
* Les mouvements Glisser et Balayer peuvent être simulés en utilisant le mouvement Panoramique des applications Metropolis UI, en faisant le suivi de l'emplacement et de la direction du mouvement panoramique.
Les mouvements interactifs supportés sont décrits dans :
Pour plus d'informations sur les mouvements Windows 8 équivalents, voir http://msdn.microsoft.com/fr-fr/library/windows/apps/hh761498.aspx#input_modes.
Gestion des mouvements dans Windows 8
Dans Windows 8, quand RealTimeStylus est activé pour une fenêtre, tous les mouvements sont envoyés par le biais de l'API RealTimeStylus MS Windows 8, et l'API Windows Touch ne rapporte aucun événement.
Pour résoudre ce problème, un indicateur global a été ajouté à FireMonkey afin de permettre la désactivation de l'API RealTimeStylus. Quand l'API RealTimeStylus est désactivée, FireMonkey ne détecte pas les mouvements standard. A la place, les événements de mouvement de l'API Windows Touch sont rapportés individuellement par le biais du gestionnaire d'événements OnGesture.
Vous pouvez interpréter ces événements pour déterminer le mouvement qui a été réalisé par l'utilisateur. Un mouvement Windows Touch est déclaré en tant qu'événements multiples, en commençant par l'événement avec le TGestureEventInfo.Flag contenant gfBegin et en se terminant par un événement contenant gfEnd. Pour plus d'informations, voir FMX.Types.TInteractiveGestureFlag.
Pour activer le compte rendu des événements Windows Touch, et pour activer les mouvements interactifs, le code suivant doit être ajouté au début du fichier programme principal :
Delphi :
TPlatformServices.Current.GlobalFlags.Add(GlobalDisableStylusGestures, True);
C++ :
TPlatformServices::Current->GlobalFlags->Add(GlobalDisableStylusGestures, true);
Vous devez aussi ajouter FMX.Platform et FMX.Consts à votre section uses
ou aux instructions #include
.
Cette solution n'est pas requise sur Windows 7 et il est possible qu'elle ne soit pas requise dans la release finale de Windows 8.