clavier40()

Met en place un clavier fugitif pour saisir une chaîne de caractères.

 

Exemples d'utilisation

chaine=clavier40(DEMI_LARGEUR-115, DEMI_HAUTEUR-50,"Quel est votre nom?"); // Demande du nom
if (clavier40(0,0,"O/N")=="O") ... // Teste si on répond O ou N

 

Référence

String clavier40(int x, int y, String titre);

Paramètre passé

x,y: coordonnés du coin en haut à gauche du clavier (dimensions 231x101pixels)
titre: chaîne affichée avant la saisie d'un caractère

Valeur retournée

Chaîne de caractère saisie

Effets de bord:

Termine avec des caractères sans serifs, de taille 2, en mode dessin, curseur texte après la chaîne saisie, et la direction d'écriture vers l'est

 

Voir aussi

- text(); Écrit du texte
- setLimites(); Limite la zone de dessin
- setTextOrient(); Direction d'écriture des textes
- setTextSize(); Taille des caractères
- setTextSerif(); Choix avec ou sans empattements
- hLine(); Trace une ligne horizontale
- vLine(); Trace une ligne verticale

 

Notes

Cette fonction dessine un clavier de 40 touches, affiche le titre que vous lui avez passé, et enregistre les lettres appuyées. Quand un clic est effectué sur la barre principale, elle se termine, s'efface et retourne la chaîne saisie.

Les caractères possibles sont particulièrement adaptés pour donner un nom de fichier:
- les 10 chiffres de 0 à 9
- les 26 majuscules A..Z
- les symboles espace, point, et slash (séparateur entre répertoires)
La validation se fait en cliquant sur la barre principale du haut, et pour effacer le dernier caractère, c'est la touche en bas à droite qui doit être utilisée.

Comme il n'y a pas vraiment la possibilité de sauvegarder la partie qui est recouverte par le clavier et que l'on ne peut pas non plus le laisser en permanence (l'écran est trop petit), il est mis en inversion, ce qui permet de l'enlever à la fin. C'est pour cela qu'il est transparent et difficilement lisible sur un fond bariolé. Si vous le pouvez et si vous le voulez avec un fond, vous pouvez précéder la fonction d'un petit fillRect(x,y,x+231,y+101,couleur); qui dessinera un fond avant.

Les touches sont petites et je conseille d'avoir étalonné le touchPad pour utiliser le clavier.

Le clavier est sensible aux limites données par la fonction setLimites()

 

Exemple

PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-701-clavier40\Exemple-701-clavier40.ino (dans votre fichier téléchargé):

// Le clavier demande que vous écriviez votre prénom pour vous dire bonjour.

#
  $menu = ":PG";
  include <PecheuxGraph_ILI9341_8bits.h>

void setup()
{
  setGraphMode(PAYSAGE); // Initialisation
  setTextSize(1); text("Cliquez sur votre prénom quand vous avez fini.");
  text("Bonjour "+clavier40(DEMI_LARGEUR-115, DEMI_HAUTEUR-50,"Votre prénom?"));
  //      ^         ^               ^                ^               ^
  //      |         |               |                |               | texte affiché dans le clavier au début       
  //      |         |               |                | clavier de 101 pixels de haut, pour le centrer       
  //      |         |               | clavier de 231 pixels de large, pour le centrer       
  //      |         | appel du clavier de 40 touches qui retournera le prénom       
  //      | affichage du mot Bonjour et du prénom      
}

void loop()
{
}

Résultat:

 

Côté technique

Étant donné qu'il n'y a pas de moyen rapide pour sauvegarder la zone ou est dessiné le clavier, celui ci doit être dessiné et effacé en mode inversion. Considérons aussi qu'il est possible d'utiliser la bibliothèque sans carte SD, et qu'une image ne tient pas dans la mémoire.