EventwParam y fait rien qu'a m'embeter [Résolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

EventwParam y fait rien qu'a m'embeter [Résolu]

Message par Kwai chang caine »

Bonjour à tous

Je voudrais detecter l'appui sur plusieures touches en meme temps.
Par exemple, si j'appuie sur D et apres dur 2, j'aimerais avoir dans le debugger "D2" et qu'une seule fois et ceci avec toutes les touches du clavier.

Comme je sais que certaines touches ne sont accessible que par EventwParam, j'ai donc utilisé cette merveille.
Mais le probleme, c'est avec le pavé numérique, il me sort des lettres 8O

Qu'est ce que j'ai encore cassé :oops:

Code : Tout sélectionner

OpenWindow(1, x, y, LargeurFenetre, HauteurFenetre, "", #PB_Window_ScreenCentered|#PB_Window_SystemMenu) 

Repeat  
  
 Evenement = WaitWindowEvent () 
  
 If Evenement = #WM_KEYDOWN 
  
  ToucheAppuyer$ = Chr(EventwParam())
  
  If Not FindString(Combinaison$, ToucheAppuyer$, 1)
   Combinaison$ + ToucheAppuyer$
   Debug combinaison$
  EndIf
     
 ElseIf Evenement = #WM_KEYUP
 
  Combinaison.s = ""
 
  EndIf
 
Until Evenement = #PB_Event_CloseWindow
Merci de votre aide
Dernière modification par Kwai chang caine le sam. 09/févr./2008 19:04, modifié 1 fois.
Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

Message par Stefou »

Salut Kwai

Il ne me semble pas que EventwParam() renvoie le code ASCI de la touche. Je pense qu'il renvoie le numéro de la touche ! Cela tombe bien pour les lettres de A à Z et encore, il ne renvoie que les majuscules. C'est à toi de faire une table de correspondance.

Je n'est pas encore coder cela !

Exemple de début :

Code : Tout sélectionner

Procedure.s Key(num)
select num
    case 65 to 90
         procedurereturn chr(num)
    case 96 ;num 0 du pav
         procedurereturn "0"
.....
endselect
endprocedure
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Oui Stefou à raison le message #WM_KEYDOWN ne renvoie pas un code qui correspond à la table ASCII sauf pour quelques lettres.

Si tu veux pas t'embêter, remplace par #WM_CHAR
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

@STEFOU
D'accord pour le retour des touches, c'est trompeur

@Nico
Merci beaucoup, ça marche nickel avec le #WM_CHAR

Merci à tous les deux
J'y retourne jusqu'au prochain obstacle
Répondre