INKEY() et INKEY$()
DESCRIPTION.
L'instruction INKEY() attend un certain temps qu'une touche soit enfoncée et retourne le code ASCII de celle-ci.
L'instruction INKEY$() attend un certain temps qu'une touche soit enfoncée et retourne le symbole de celle-ci.
SYNTAXE.
kvaleur = INKEY( option )
kcaractère$ = INKEY$( option )
REMARQUES.
option doit être un nombre entier.
Si option est positif ou nul, il précise le temps d'attente maximum en millisecondes (ms) avant de reprendre l'exécution du programme.
Si cette durée est écoulé sans qu'une touche ait été enfoncé INKEY() retournera -1 et INKEY$() retournera une chaine de caractères vide.
Si tampon du clavier n'est pas vide, ou s'il reçoit une valeur, parce qu'une touche viens d'être actionnée, durant le délai défini par option, l'instruction INKEY() retournera un nombre entier compris entre 0 et 255, correspondant au code ASCII de la touche du clavier qui viens d'être enfoncée et l'instruction INKEY$() retourne une chaine d'un unique caractère, correspondant à la touche du clavier qui viens d'être enfoncée.
Si option vaut 0, l'instruction INKEY() et/ou INKEY$() retournera une valeur immédiatement.
Si option est négatif, il précise le un code identifiant la touche à tester.
Si cette touche est enfoncée quand le programme rencontre cette instruction INKEY() retournera -1, c'est-à-dire TRUE, vraie, sinon INKEY() retournera 0, c'est-à-dire FALSE, faux.
Les codes des touches dépendent du type de disposition du clavier : AZERTY, QWERTY, ... il faudra donc être prudent, en particulier sur la région de diffusion de votre programme, lors de l'utilisation des instructions INKEY() et/ou INKEY$() avec des valeurs négatives.
A chaque appel de l'instruction INKEY() et/ou INKEY$(), la première valeur présente dans le tampon clavier est retournée puis supprimée du tampon clavier. Les autres valeurs présentent dans le tampon clavier ne seront pas effacés. La formule : REPEAT UNTIL INKEY( 0 ) = -1. permettra de purger entièrement le tampon clavier.
Note : si les touches de fonction et de curseur ont été redéfinies avec la commande système *KEY, leur appui chargera la mémoire tampon du clavier avec leur chaine de caractères actuelle.
Voir les instruction GET et GET$ pour obtenir un caractère du tampon clavier dès qu'il y en aura un de présent.
EXEMPLES.
1. Utilisation de INKEY$() pour obtenir le symbole de la touche.
REPEAT
PRINT "Appuyer sur Q pour arreter ... " ;
ktouche$ = INKEY$( 80 )
IF ktouche$ = "" THEN PRINT "pas de touche utilisee." ELSE PRINT "Vous avez appuyez sur " ; ktouche$
UNTIL ktouche$ = "Q" OR ktouche$ = "q"
PRINT "Test termine. Au revoir."
END
2. Utilisation de INKEY() pour obtenir le code ASCII de la touche.
REPEAT
PRINT "Appuyer sur Q pour arreter ... " ;
ktouche = INKEY( 80 )
IF ktouche = 0 THEN PRINT "pas de touche utilisee." ELSE PRINT "Vous avez appuyez sur " ; CHR$( ktouche )
UNTIL ktouche = 81 OR ktouche = 113
PRINT "Test termine. Au revoir."
END
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.