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.