SlideShare a Scribd company logo
1 of 35
Download to read offline
Gérer le clavier
virtuel sous iOS et
Android
Webinaire du 28 juillet 2020
PRÉSENTATEUR
MVP Embarcadero
Prestataire informatique freelance et formateur Delphi
CV et contacts :
https://www.linkedin.com/in/patrickpremartin/
Blog Delphi/Pascal :
https://developpeur-pascal.fr
Outils Embarcadero
Les meilleurs outils de développement multi-
plateformes. Créez une fois et déployez des
applications modernes sur chaque plateforme.
Support Technique
Nos techniciens sont à votre service à tout
moment pour répondre à vos questions et
vous fournir des informations sûres.
Distributeur Officiel
Partenaire exclusif de Embarcadero
Technologies, largement reconnu pour
ses produits de programmation primés.
B A R N S T E N
QUI
Site : https://www.barnsten.com – Contacts FR : equipe@barnsten.com
NOTRE
Société de prestations informatiques.
Edition de sites Internet, vidéos et livres.
Centre de formation référencé sur Datadock.
Infos et contacts : https://olfsoftware.fr
Formations en entreprise : https://se-former-a-delphi.fr
Formations en ligne : https://apprendre-delphi.fr
O L F S O F T W A R E
INTROD
Les saisies sur mobiles sont à limiter au
maximum mais nous n’avons pas toujours le
choix. Voyons comment gérer le clavier
virtuel sur smartphone et tablettes avec
FireMonkey.
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Les exemples seront réalisés avec Delphi mais
vous pourrez bien entendu vous en inspirer pour
faire de même sous C++Builder.
© Patrick Prémartin / developpeur-pascal.fr
SAISIR
Les smartphones sont quasiment partout, les
tablettes remplacent de plus en plus souvent les
ordinateurs portables ou même des ordinateurs
fixes. Nous n’y coupons pas dans nos logiciels : il
faut que les utilisateurs puissent entrer leurs
informations.
© Patrick Prémartin / developpeur-pascal.fr
SAISIR
Qui dit mobile dit aussi tailles d’écrans variables,
conditions de saisie pas toujours géniales,
potentielles difficultés liées au tactile ou à la
saisie vocale selon les cas et l’utilisateur.
A nous de simplifier au maximum ces étapes si
nous voulons obtenir les informations
demandées.
© Patrick Prémartin / developpeur-pascal.fr
SAISIR
Je vais évoquer deux choses avec vous
aujourd’hui:
- La configuration des claviers mobiles
- L’ergonomie des écrans
© Patrick Prémartin / developpeur-pascal.fr
CONFIGURER
FireMonkey propose de nombreux champs pour
permettre aux utilisateurs d’entrer des
informations. Nous ne devons proposer des
champs de saisie (TEdit ou TMemo) que
lorsqu’aucun autre choix n’est disponible.
Ca permet de se simplifier la vie et de la simplifier
aussi à nos utilisateurs.
© Patrick Prémartin / developpeur-pascal.fr
CONFIGURER
Embarcadero nous permet de paramétrer le
clavier virtuel sur les champs de saisie avec
plusieurs propriétés :
- KeyboardType
- KillFocusByReturn
- ReturnKeyType
© Patrick Prémartin / developpeur-pascal.fr
CONFIGURER
KeyboardType : Indique quel type de clavier sera
affiché lorsque le champ concerné aura le focus.
© Patrick Prémartin / developpeur-pascal.fr
CONFIGURER
KillFocusByReturn : Annule ou laisse la
focalisation (et donc le clavier virtuel affiché)
lorsque la touche ENTREE du clavier virtuel est
utilisée.
© Patrick Prémartin / developpeur-pascal.fr
CONFIGURER
ReturnKeyType : Détermine le look de la touche
ENTREE du clavier virtuel.
© Patrick Prémartin / developpeur-pascal.fr
CONFIGURER
Une fois le look du clavier déterminé, reste à faire
en sorte qu’il s’affiche au bon endroit… ou plutôt
faire en sorte que le champ qui a le focus soit
visible au dessus du clavier d’une manière ou
d’une autre.
© Patrick Prémartin / developpeur-pascal.fr
RAPPELS
L’une des choses les plus importantes lorsqu’on
fait des écrans mobiles est de penser
« responsif » et donc de mettre en place les
éléments visuels à l’écran de telle sorte que celui-
ci soit toujours affiché au mieux des possibilités
du périphérique utilisé.
© Patrick Prémartin / developpeur-pascal.fr
RAPPELS
Reportez vous à la session « faire une interface
adaptive avec FireMonkey » du 28 mai 2019 sur
le sujet pour plus d’infos :
https://developpeur-pascal.fr/p/_200e-
webinaire-du-28-mai-2019-faire-une-interface-
adaptive-avec-firemonkey.html
© Patrick Prémartin / developpeur-pascal.fr
ERGONOMIE
En mobile les fiches sont positionnées en haut à
gauche de l’écran et occupent la largeur et la
hauteur de l’écran.
Ce n’est pas modifiable par code.
Contrairement aux autres éléments visuels de
FMX les fiches ne peuvent pas être déplacées sur
plateformes mobiles. Sur macOS, Linux et
Windows elles fonctionnent comme en VCL.
© Patrick Prémartin / developpeur-pascal.fr
ERGONOMIE
Comme on ne peut pas déplacer la fiche il faudra
pouvoir en déplacer le contenu si on désire
mettre un champ de saisie au dessus du clavier
lorsqu’il s’affichait au départ par dessus.
Nous devons impérativement avoir un
TVertScrollBox comme composant parent des
éléments de la fiche.
© Patrick Prémartin / developpeur-pascal.fr
ERGONOMIE
Comme on ne peut pas déplacer la fiche il faudra
pouvoir en déplacer le contenu si on désire
mettre un champ de saisie au dessus du clavier
lorsqu’il s’affichait au départ par dessus.
Nous devons impérativement avoir un
TVertScrollBox comme composant parent des
éléments de la fiche.
© Patrick Prémartin / developpeur-pascal.fr
ERGONOMIE
En faisant ça nous pourrons modifier la position
d’affichage dans la zone avec ascenseur en jouant
sur sa propriété ViewportPosition et en modifier
la taille si nécessaire.
Idéalement on alignera les composants en
alignement Top ou en coordonnées absolues.
© Patrick Prémartin / developpeur-pascal.fr
ERGONOMIE
En réalité on peut faire sans, mais du coup on
devra déplacer tous les composants de la fiche au
lieu de simplement modifier la coordonnée Y de
la vue dans la zone avec ascenseur.
© Patrick Prémartin / developpeur-pascal.fr
ERGONOMIE
De base les choses ne seront déjà pas forcément
simples, mais ça va se compliquer encore plus
lorsqu’on sera dans un TMemo ou dans des
composants imbriqués les uns dans les autres.
© Patrick Prémartin / developpeur-pascal.fr
ERGONOMIE
Le cas du TMemo complique les choses car ce
n’est pas le composant lui-même qui nous
intéressera mais la position du curseur à
l’intérieur du composant. On l’obtiendra à partir
de sa propriété Caret.Pos (et non CaretPosition).
© Patrick Prémartin / developpeur-pascal.fr
ERGONOMIE
Pour les composants imbriqués il faudra que l’on
calcule la position du champ qui a la focalisation
par rapport au TVertScrollBox de base, donc
qu’on remonte ses parents jusqu’à avoir la bonne
réponse.
© Patrick Prémartin / developpeur-pascal.fr
ERGONOMIE
On peut à peu près automatiser tout ça dans une
fiche dont on peut hériter pour construire les
écrans du projet.
Les calculs de coordonnées ne seront pas
toujours faciles à faire car il est possible qu’un
ascenseur se trouve dans un autre ascenseur et là
c’est le bordel…
© Patrick Prémartin / developpeur-pascal.fr
ERGONOMIE
L’ouverture et la fermeture du clavier virtuel
déclenchent deux événements au niveau de la
fiche :
- onVirtualKeyboardShown
- onVirtualKeyboardHidden
A nous de les gérer à l’aide de la taille fournie en
paramètre.
© Patrick Prémartin / developpeur-pascal.fr
EXEMPLE
Embarcadero fournit un exemple d’écran gérant
le clavier virtuel des mobiles.
Il se trouve dans « Object PascalMulti-Device
SamplesUser InterfaceScrollableForm » de
l’arborescence des exemples.
© Patrick Prémartin / developpeur-pascal.fr
EXEMPLE
Je vous en propose une autre approche.
Les sources sont disponibles sur GitHub :
https://github.com/DeveloppeurPascal/GererLeCl
avierVirtuelSurIOSEtAndroid
© Patrick Prémartin / developpeur-pascal.fr
QUESTIONS
© Patrick Prémartin / developpeur-pascal.fr
CONCL
© Patrick Prémartin / developpeur-pascal.fr
Aujourd’hui nous avons vu comment configurer
les claviers pour les adapter aux données à entrer
et comment gérer nos écrans pour éviter les
couacs visuels.
CONCL
© Patrick Prémartin / developpeur-pascal.fr
Vous n’avez plus qu’à adapter vos logiciels
multiplateforme pour qu’ils restent exploitables
dans un maximum de circonstances et de formats
d’écrans possibles.
CONCL
© Patrick Prémartin / developpeur-pascal.fr
La rediffusion de ce webinaire devrait être
disponible sur la chaîne YouTube de Barnsten :
https://www.youtube.com/channel/UCSrWP5Y01
uSHS3014Pfprlw/videos
CONCL
© Patrick Prémartin / developpeur-pascal.fr
Pour des ressources complémentaires,
télécharger cette présentation et accéder aux
exemples, rendez-vous sur :
https://developpeur-pascal.fr/p/_200l-webinaire-
du-mardi-28-juillet-2020-gerer-le-clavier-virtuel-
sur-ios-et-android.html
PROCHAINS
© Patrick Prémartin / developpeur-pascal.fr
Prochains webinaires :
- 25 août 2020 : Sauvegarder et restaurer l'état
des applications mobiles
- 29 septembre 2020 : Développer une
application pour Android TV avec Delphi
Détails et inscriptions depuis
https://developpeur-pascal.fr/p/_6007-
webinaires.html
CONTACTEZ NOUS

More Related Content

Similar to Gérer le clavier virtuel sous iOS et Android

Utiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformeUtiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformepprem
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitairespprem
 
Découvrez FireDAC pour FMX
Découvrez FireDAC pour FMXDécouvrez FireDAC pour FMX
Découvrez FireDAC pour FMXpprem
 
Utiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagesUtiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagespprem
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
Faire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkeyFaire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkeypprem
 
Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...
Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...
Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...Microsoft
 
Guide de démarrage rapide de la Num-Class
Guide de démarrage rapide de la Num-ClassGuide de démarrage rapide de la Num-Class
Guide de démarrage rapide de la Num-ClassEASYTIS
 
Comment développer pour Linux avec Delphi
Comment développer pour Linux avec DelphiComment développer pour Linux avec Delphi
Comment développer pour Linux avec Delphipprem
 
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...Alphorm
 
Publier une application mobile en un clic
Publier une application mobile en un clicPublier une application mobile en un clic
Publier une application mobile en un clicFabernovel
 
Faire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCLFaire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCLpprem
 
20140415200533!rapport projet deltombe_gerier
20140415200533!rapport projet deltombe_gerier20140415200533!rapport projet deltombe_gerier
20140415200533!rapport projet deltombe_gerierbessem ellili
 
Kinect en moins de 10 Minutes
Kinect en moins de 10 MinutesKinect en moins de 10 Minutes
Kinect en moins de 10 MinutesMicrosoft
 

Similar to Gérer le clavier virtuel sous iOS et Android (20)

Utiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformeUtiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateforme
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitaires
 
Découvrez FireDAC pour FMX
Découvrez FireDAC pour FMXDécouvrez FireDAC pour FMX
Découvrez FireDAC pour FMX
 
Utiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagesUtiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'images
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
Td pascal tdD
Td pascal tdDTd pascal tdD
Td pascal tdD
 
Cours cordova & REST
Cours cordova & RESTCours cordova & REST
Cours cordova & REST
 
Faire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkeyFaire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkey
 
Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...
Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...
Concevoir une expérience SoLoMo (sociale, locale, mobile): retours d'expérien...
 
Guide de démarrage rapide de la Num-Class
Guide de démarrage rapide de la Num-ClassGuide de démarrage rapide de la Num-Class
Guide de démarrage rapide de la Num-Class
 
Comment développer pour Linux avec Delphi
Comment développer pour Linux avec DelphiComment développer pour Linux avec Delphi
Comment développer pour Linux avec Delphi
 
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
 
Publier une application mobile en un clic
Publier une application mobile en un clicPublier une application mobile en un clic
Publier une application mobile en un clic
 
Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015
 
Apache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéroApache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéro
 
.NET DotNet CF - 1
.NET DotNet CF - 1.NET DotNet CF - 1
.NET DotNet CF - 1
 
Introduction a Flutter
Introduction a FlutterIntroduction a Flutter
Introduction a Flutter
 
Faire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCLFaire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCL
 
20140415200533!rapport projet deltombe_gerier
20140415200533!rapport projet deltombe_gerier20140415200533!rapport projet deltombe_gerier
20140415200533!rapport projet deltombe_gerier
 
Kinect en moins de 10 Minutes
Kinect en moins de 10 MinutesKinect en moins de 10 Minutes
Kinect en moins de 10 Minutes
 

More from pprem

Using FireMonkey as a game engine
Using FireMonkey as a game engineUsing FireMonkey as a game engine
Using FireMonkey as a game enginepprem
 
Using Delphi as a no code development environment
Using Delphi as a no code development environmentUsing Delphi as a no code development environment
Using Delphi as a no code development environmentpprem
 
Easy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeyEasy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeypprem
 
Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?pprem
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphipprem
 
Embarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilesEmbarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilespprem
 
Déploiement et débogage à distance
Déploiement et débogage à distanceDéploiement et débogage à distance
Déploiement et débogage à distancepprem
 
QR codes et codes à barres sous Delphi
QR codes et codes à barres sous DelphiQR codes et codes à barres sous Delphi
QR codes et codes à barres sous Delphipprem
 
Des solutions de synchronisation de données
Des solutions de synchronisation de donnéesDes solutions de synchronisation de données
Des solutions de synchronisation de donnéespprem
 
Découvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCLDécouvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCLpprem
 
POC Notes de frais
POC Notes de fraisPOC Notes de frais
POC Notes de fraispprem
 
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...pprem
 
Comment écrire des articles de blog à succès
Comment écrire des articles de blog à succèsComment écrire des articles de blog à succès
Comment écrire des articles de blog à succèspprem
 
Gagner de l'argent sur Internet
Gagner de l'argent sur InternetGagner de l'argent sur Internet
Gagner de l'argent sur Internetpprem
 
Trafic
TraficTrafic
Traficpprem
 

More from pprem (15)

Using FireMonkey as a game engine
Using FireMonkey as a game engineUsing FireMonkey as a game engine
Using FireMonkey as a game engine
 
Using Delphi as a no code development environment
Using Delphi as a no code development environmentUsing Delphi as a no code development environment
Using Delphi as a no code development environment
 
Easy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeyEasy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkey
 
Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 
Embarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilesEmbarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobiles
 
Déploiement et débogage à distance
Déploiement et débogage à distanceDéploiement et débogage à distance
Déploiement et débogage à distance
 
QR codes et codes à barres sous Delphi
QR codes et codes à barres sous DelphiQR codes et codes à barres sous Delphi
QR codes et codes à barres sous Delphi
 
Des solutions de synchronisation de données
Des solutions de synchronisation de donnéesDes solutions de synchronisation de données
Des solutions de synchronisation de données
 
Découvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCLDécouvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCL
 
POC Notes de frais
POC Notes de fraisPOC Notes de frais
POC Notes de frais
 
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
 
Comment écrire des articles de blog à succès
Comment écrire des articles de blog à succèsComment écrire des articles de blog à succès
Comment écrire des articles de blog à succès
 
Gagner de l'argent sur Internet
Gagner de l'argent sur InternetGagner de l'argent sur Internet
Gagner de l'argent sur Internet
 
Trafic
TraficTrafic
Trafic
 

Gérer le clavier virtuel sous iOS et Android

  • 1. Gérer le clavier virtuel sous iOS et Android Webinaire du 28 juillet 2020
  • 2. PRÉSENTATEUR MVP Embarcadero Prestataire informatique freelance et formateur Delphi CV et contacts : https://www.linkedin.com/in/patrickpremartin/ Blog Delphi/Pascal : https://developpeur-pascal.fr
  • 3. Outils Embarcadero Les meilleurs outils de développement multi- plateformes. Créez une fois et déployez des applications modernes sur chaque plateforme. Support Technique Nos techniciens sont à votre service à tout moment pour répondre à vos questions et vous fournir des informations sûres. Distributeur Officiel Partenaire exclusif de Embarcadero Technologies, largement reconnu pour ses produits de programmation primés. B A R N S T E N QUI Site : https://www.barnsten.com – Contacts FR : equipe@barnsten.com
  • 4. NOTRE Société de prestations informatiques. Edition de sites Internet, vidéos et livres. Centre de formation référencé sur Datadock. Infos et contacts : https://olfsoftware.fr Formations en entreprise : https://se-former-a-delphi.fr Formations en ligne : https://apprendre-delphi.fr O L F S O F T W A R E
  • 5. INTROD Les saisies sur mobiles sont à limiter au maximum mais nous n’avons pas toujours le choix. Voyons comment gérer le clavier virtuel sur smartphone et tablettes avec FireMonkey. © Patrick Prémartin / developpeur-pascal.fr
  • 6. INTROD Les exemples seront réalisés avec Delphi mais vous pourrez bien entendu vous en inspirer pour faire de même sous C++Builder. © Patrick Prémartin / developpeur-pascal.fr
  • 7. SAISIR Les smartphones sont quasiment partout, les tablettes remplacent de plus en plus souvent les ordinateurs portables ou même des ordinateurs fixes. Nous n’y coupons pas dans nos logiciels : il faut que les utilisateurs puissent entrer leurs informations. © Patrick Prémartin / developpeur-pascal.fr
  • 8. SAISIR Qui dit mobile dit aussi tailles d’écrans variables, conditions de saisie pas toujours géniales, potentielles difficultés liées au tactile ou à la saisie vocale selon les cas et l’utilisateur. A nous de simplifier au maximum ces étapes si nous voulons obtenir les informations demandées. © Patrick Prémartin / developpeur-pascal.fr
  • 9. SAISIR Je vais évoquer deux choses avec vous aujourd’hui: - La configuration des claviers mobiles - L’ergonomie des écrans © Patrick Prémartin / developpeur-pascal.fr
  • 10. CONFIGURER FireMonkey propose de nombreux champs pour permettre aux utilisateurs d’entrer des informations. Nous ne devons proposer des champs de saisie (TEdit ou TMemo) que lorsqu’aucun autre choix n’est disponible. Ca permet de se simplifier la vie et de la simplifier aussi à nos utilisateurs. © Patrick Prémartin / developpeur-pascal.fr
  • 11. CONFIGURER Embarcadero nous permet de paramétrer le clavier virtuel sur les champs de saisie avec plusieurs propriétés : - KeyboardType - KillFocusByReturn - ReturnKeyType © Patrick Prémartin / developpeur-pascal.fr
  • 12. CONFIGURER KeyboardType : Indique quel type de clavier sera affiché lorsque le champ concerné aura le focus. © Patrick Prémartin / developpeur-pascal.fr
  • 13. CONFIGURER KillFocusByReturn : Annule ou laisse la focalisation (et donc le clavier virtuel affiché) lorsque la touche ENTREE du clavier virtuel est utilisée. © Patrick Prémartin / developpeur-pascal.fr
  • 14. CONFIGURER ReturnKeyType : Détermine le look de la touche ENTREE du clavier virtuel. © Patrick Prémartin / developpeur-pascal.fr
  • 15. CONFIGURER Une fois le look du clavier déterminé, reste à faire en sorte qu’il s’affiche au bon endroit… ou plutôt faire en sorte que le champ qui a le focus soit visible au dessus du clavier d’une manière ou d’une autre. © Patrick Prémartin / developpeur-pascal.fr
  • 16. RAPPELS L’une des choses les plus importantes lorsqu’on fait des écrans mobiles est de penser « responsif » et donc de mettre en place les éléments visuels à l’écran de telle sorte que celui- ci soit toujours affiché au mieux des possibilités du périphérique utilisé. © Patrick Prémartin / developpeur-pascal.fr
  • 17. RAPPELS Reportez vous à la session « faire une interface adaptive avec FireMonkey » du 28 mai 2019 sur le sujet pour plus d’infos : https://developpeur-pascal.fr/p/_200e- webinaire-du-28-mai-2019-faire-une-interface- adaptive-avec-firemonkey.html © Patrick Prémartin / developpeur-pascal.fr
  • 18. ERGONOMIE En mobile les fiches sont positionnées en haut à gauche de l’écran et occupent la largeur et la hauteur de l’écran. Ce n’est pas modifiable par code. Contrairement aux autres éléments visuels de FMX les fiches ne peuvent pas être déplacées sur plateformes mobiles. Sur macOS, Linux et Windows elles fonctionnent comme en VCL. © Patrick Prémartin / developpeur-pascal.fr
  • 19. ERGONOMIE Comme on ne peut pas déplacer la fiche il faudra pouvoir en déplacer le contenu si on désire mettre un champ de saisie au dessus du clavier lorsqu’il s’affichait au départ par dessus. Nous devons impérativement avoir un TVertScrollBox comme composant parent des éléments de la fiche. © Patrick Prémartin / developpeur-pascal.fr ERGONOMIE Comme on ne peut pas déplacer la fiche il faudra pouvoir en déplacer le contenu si on désire mettre un champ de saisie au dessus du clavier lorsqu’il s’affichait au départ par dessus. Nous devons impérativement avoir un TVertScrollBox comme composant parent des éléments de la fiche. © Patrick Prémartin / developpeur-pascal.fr
  • 20. ERGONOMIE En faisant ça nous pourrons modifier la position d’affichage dans la zone avec ascenseur en jouant sur sa propriété ViewportPosition et en modifier la taille si nécessaire. Idéalement on alignera les composants en alignement Top ou en coordonnées absolues. © Patrick Prémartin / developpeur-pascal.fr
  • 21. ERGONOMIE En réalité on peut faire sans, mais du coup on devra déplacer tous les composants de la fiche au lieu de simplement modifier la coordonnée Y de la vue dans la zone avec ascenseur. © Patrick Prémartin / developpeur-pascal.fr
  • 22. ERGONOMIE De base les choses ne seront déjà pas forcément simples, mais ça va se compliquer encore plus lorsqu’on sera dans un TMemo ou dans des composants imbriqués les uns dans les autres. © Patrick Prémartin / developpeur-pascal.fr
  • 23. ERGONOMIE Le cas du TMemo complique les choses car ce n’est pas le composant lui-même qui nous intéressera mais la position du curseur à l’intérieur du composant. On l’obtiendra à partir de sa propriété Caret.Pos (et non CaretPosition). © Patrick Prémartin / developpeur-pascal.fr
  • 24. ERGONOMIE Pour les composants imbriqués il faudra que l’on calcule la position du champ qui a la focalisation par rapport au TVertScrollBox de base, donc qu’on remonte ses parents jusqu’à avoir la bonne réponse. © Patrick Prémartin / developpeur-pascal.fr
  • 25. ERGONOMIE On peut à peu près automatiser tout ça dans une fiche dont on peut hériter pour construire les écrans du projet. Les calculs de coordonnées ne seront pas toujours faciles à faire car il est possible qu’un ascenseur se trouve dans un autre ascenseur et là c’est le bordel… © Patrick Prémartin / developpeur-pascal.fr
  • 26. ERGONOMIE L’ouverture et la fermeture du clavier virtuel déclenchent deux événements au niveau de la fiche : - onVirtualKeyboardShown - onVirtualKeyboardHidden A nous de les gérer à l’aide de la taille fournie en paramètre. © Patrick Prémartin / developpeur-pascal.fr
  • 27. EXEMPLE Embarcadero fournit un exemple d’écran gérant le clavier virtuel des mobiles. Il se trouve dans « Object PascalMulti-Device SamplesUser InterfaceScrollableForm » de l’arborescence des exemples. © Patrick Prémartin / developpeur-pascal.fr
  • 28. EXEMPLE Je vous en propose une autre approche. Les sources sont disponibles sur GitHub : https://github.com/DeveloppeurPascal/GererLeCl avierVirtuelSurIOSEtAndroid © Patrick Prémartin / developpeur-pascal.fr
  • 29. QUESTIONS © Patrick Prémartin / developpeur-pascal.fr
  • 30. CONCL © Patrick Prémartin / developpeur-pascal.fr Aujourd’hui nous avons vu comment configurer les claviers pour les adapter aux données à entrer et comment gérer nos écrans pour éviter les couacs visuels.
  • 31. CONCL © Patrick Prémartin / developpeur-pascal.fr Vous n’avez plus qu’à adapter vos logiciels multiplateforme pour qu’ils restent exploitables dans un maximum de circonstances et de formats d’écrans possibles.
  • 32. CONCL © Patrick Prémartin / developpeur-pascal.fr La rediffusion de ce webinaire devrait être disponible sur la chaîne YouTube de Barnsten : https://www.youtube.com/channel/UCSrWP5Y01 uSHS3014Pfprlw/videos
  • 33. CONCL © Patrick Prémartin / developpeur-pascal.fr Pour des ressources complémentaires, télécharger cette présentation et accéder aux exemples, rendez-vous sur : https://developpeur-pascal.fr/p/_200l-webinaire- du-mardi-28-juillet-2020-gerer-le-clavier-virtuel- sur-ios-et-android.html
  • 34. PROCHAINS © Patrick Prémartin / developpeur-pascal.fr Prochains webinaires : - 25 août 2020 : Sauvegarder et restaurer l'état des applications mobiles - 29 septembre 2020 : Développer une application pour Android TV avec Delphi Détails et inscriptions depuis https://developpeur-pascal.fr/p/_6007- webinaires.html