Forum

Catégorie : Discussions générales
Forum : Articles
Vues : 6603
Réponses : 6
Type : discussion
Etat : réponses autorisées

[TUTO] Utiliser GETKEY / CODETOUCHE

linkakro le 21/04/2011 à 21:27
"getKey" en anglais et "codeTouche" en français.

Chaque touche est associée à un code.

L'instruction getkey se lit de la même façon qu'une variable. Elle peut être en plein milieu d'une formule.
Il est plutôt conseillé de stocker sa valeur dans une variable pour la conserver.
getKey->K

Elle prend comme valeur le code de la dernière touche pressée pendant la lecture du prog. (excepté entrer pour quitter les pause/input)
Si aucune touche n'est pressée, elle vaut 0.

Si vous voulez connaître les touches à tout moment, ce programme peut servir.
Code
While 1
getKey
If Ans
Disp Ans
End



=============== Des astuces pour s'en servir : ===============

Le programme s'arrête ici et attends que vous pressiez une touche quelconque.
Code
Repeat K
getKey->K
End
 // par la suite K peut se réutiliser pour connaître la touche
Pareil en plus optimisé
Code
Repeat Ans
getKey
End
 // vous pouvez réutiliser Ans, c'est plus léger mais cela est plus difficile
Encore plus optimisé mais vous ne pouvez plus utiliser l'information indiquant quelle touche a été pressée.
Code
Repeat getKey
End


Le programme attend que vous pressiez une des touches annoncées dans une liste.
Code
Repeat max(K={24,25,26,34
getKey->K
End


Les déplacements d'un curseur et les limites se font de plusieurs manières.
Code
If K=24:X-1->X
If K=26:X+1->X
If K=25:Y-1->X
If K=34:Y+1->Y

// équivalent à

X-(K=24)+(K=26->X
Y-(K=25)+(K=34->Y
Code
If X>16:16->X
If X<1:1->X

//est équivalent à

max(1,min(16,X->X
Code
If X<1:16->X
If X>16:1->X

// est équivalent à

X-16int((X-1)/16)->X

// ou encore

X-16(X>16)+16(X<1)->X
EDIT : les 2èmes et 3èmes codes d'astuce ont été ajoûtés postérieurement au sujet
Sangohan38 le 25/04/2011 à 21:17
J'ajoute que si vous avez du mal à vous rappeler du numéro des touches, ce petit programme peut vous aider:

Code
ClrHome
While Ans =/= 105
Getkey
If Ans =/=0
Disp Ans
End


Sangohan38
patate007 le 26/04/2011 à 21:51
Et moi, j'ajouterai même que le premier chiffre est le numéro de la ligne, le deuxième est le numéro de la colonne winkle.gif
Sangohan38 le 26/04/2011 à 22:44
Sauf que tu as oublié de mentionner que l'on part du haut à droite pour compter...

Sangohan38
patate007 le 27/04/2011 à 18:36
Ah, je pensais que c'était clair. Autant pour moi winkle.gif
Persalteas le 28/04/2011 à 09:13
je mentionnerai en info bonus que cette table est très facile a apprendre par coeur, ça vous évite d'avoir à imprimer cette page .


Attention par contre: C'est la table du Ti Basic !!

Mettez vous a des languages qui supportent le multitouche, et hop! elle change...
Akmdad le 28/04/2011 à 10:15
c'est facile a retenir parce que c'est parfaitement logique winkle.gif
moi j'y comprend rien a la table de la 89 puisque il n'y a aucune logique. je sais juste les quatres touches de deplacement... en plus sur ti 89, si on active le 2nd ou l'alpha c'est encore different ....