• Advertisement

[Résolu]Touche clavier assigner une action

Tout ce qui concerne la version 11 & plus récentes de windev

**Windev est une marque déposée de Pcsoft**

[Résolu]Touche clavier assigner une action

Messagepar iznogood » Jeu Fév 11, 2010 3:59 am

Bonjour,

Qui pourrait m'expliquer comment assigner une action de touche à un champ ?
Code: Tout sélectionner
SI EnvoieTouche("{F2}") ALORS
   INT_LONGUE_DURéE = 1
FIN

Est ce que mon code est correct et dans quelle ligne du champ mettre le code lorsque ce champ prend le focus suite à une action d'un champ précédent.

j'espère avoir été clair.

Merci de votre aide.
Dernière édition par iznogood le Dim Fév 21, 2010 3:22 pm, édité 1 fois.
iznogood
Membre Confirmé
 
Messages: 219
Inscription: Lun Juin 02, 2008 7:27 pm

Advertisement

Re: Touche clavier assigner une action

Messagepar Patrice974 » Jeu Fév 11, 2010 2:14 pm

Bonjour,

Pour rappelle l'aide est votre meilleur ami
voici ce que retourne l'aide en tapant touche comme critère de recherche

Code: Tout sélectionner

Externe "KeyConst.WL"
POUR I = 1 A 5000
    Sablier(Vrai)
    Multitache(-1)
    SI ToucheEnfoncée(VK_SPACE) ALORS Info("Touche espace enfoncée")
    SI ToucheEnfoncée(Asc("A")) ALORS Info("Touche A enfoncée")
FIN
Sablier(Faux)



ou bien


-- Code d'initialisation du projet
// Intégrer les fichiers "KeyConst.WL" et "WinConst.WL"
Externe "KeyConst.WL"
Externe "WinConst.WL"

-- Code d'initialisation de la fenêtre
// Intercepter l'appui sur une touche du Pocket PC
Evénement("DéplacementImage", "Fenêtre1.*", WM_KEYDOWN)

-- Procédure "DéplacementImage"
PROCEDURE DéplacementImage()
// Déplacer le champ image "MonImage" avec
// les flèches du Smartphone ou du Pocket PC
// Flèche de droite : déplacement vers la droite
SI ToucheEnfoncée(VK_RIGHT) ALORS MonImage..X = MonImage..X + 10
// Flèche de gauche : déplacement vers la gauche
SI ToucheEnfoncée(VK_LEFT) ALORS MonImage..X = MonImage..X - 10
// Flèche du haut : déplacement vers le haut
SI ToucheEnfoncée(VK_UP) ALORS MonImage..Y = MonImage..Y + 10
// Flèche du bas : déplacement vers le bas
SI ToucheEnfoncée(VK_DOWN) ALORS MonImage..Y = MonImage..Y - 10



Voir aussi l'Exemple didactique : Hotkey et Touche clavier
qui illustre ce que tu cherche
Cordialement


Patrice
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !
Avatar de l’utilisateur
Patrice974
Membre Confirmé
 
Messages: 266
Inscription: Mer Jan 16, 2008 10:40 pm

Re: Touche clavier assigner une action

Messagepar Caféine » Jeu Fév 18, 2010 10:27 am

Bonjour iznogood
voici comment je fais

code dans l'initialisation du champ
Code: Tout sélectionner
Evénement("procLocaleClavier",MoiMême..Nom,256)      //   256 interception de la frappe des touches du clavier

procLocaleClavier est la procedure où tu récupère la touche tapée au clavier


Code: Tout sélectionner
PROCEDURE procLocaleClavier (MessageWindows, wParam, lParam)

//   Gère les touches tapées dans le champ
//   MessageWindows=   256 (=touche enfoncée)
//   wParam      =   n° dela touche VK_...
//   lParam      =   inutilisé ici

si wParam   = 113 alors      // 113 = touche F2
      INT_LONGUE_DURéE = 1
      RENVOYER 1
FIN

Caféine
Membre
 
Messages: 51
Inscription: Mer Juil 30, 2008 8:47 am

Re: Touche clavier assigner une action

Messagepar iznogood » Ven Fév 19, 2010 10:14 am

Merci caféine cela fonctionne mais j'ai le message d'information suivant
Info : Tous les chemins d'exécution possibles ne renvoient pas de valeur : il manque un RENVOYER ou un RETOUR = <valeur> dans le traitement.
FEN_Prestation.PROCEDURE.procLocaleClavier, Procédure locale, ligne 0, colonne 0

Et comment connaitre les numéros assignés aux touches clavier.

Bon dev.
iznogood
Membre Confirmé
 
Messages: 219
Inscription: Lun Juin 02, 2008 7:27 pm

Re: Touche clavier assigner une action

Messagepar iznogood » Dim Fév 21, 2010 3:21 pm

Après quelques corrections voici la fin de code correct final
Code: Tout sélectionner
   INT_LONGUE_DURéE = 1
   RENVOYER = 1
SINON
   RENVOYER = 0


Merci de l'aide.

Bon DEV
iznogood
Membre Confirmé
 
Messages: 219
Inscription: Lun Juin 02, 2008 7:27 pm

Re: [Résolu]Touche clavier assigner une action

Messagepar emidev » Lun Fév 22, 2010 3:12 pm

Bonjour,

Code: Tout sélectionner
si wParam   = 113 alors      // 113 = touche F2
      INT_LONGUE_DURéE = 1
      RENVOYER 1
FIN
renvoyer 0


mais le plus efficae et pour eviter ce genre de probleme (c'est pour cela que je preconise dans tous les dev avec windev
0 erreur, 0 infos, 0 warning

comme cela vous eviterez les codes qui plante un jour alors que tout fonctionnait depuis X année et le code qui n'a jamais ete test se presente et vous plante l'appli

la meillleur solution pour le code est :
Code: Tout sélectionner
PROCEDURE procLocaleClavier (MessageWindows, wParam, lParam)

//   Gère les touches tapées dans le champ
//   MessageWindows=   256 (=touche enfoncée)
//   wParam      =   n° dela touche VK_...
//   lParam      =   inutilisé ici

v_retour est un booleen = faux

si wParam   = 113 alors      // 113 = touche F2
      INT_LONGUE_DURéE = 1
      v_retour = vrai
FIN
renvoyer v_retour

une erreur peut s'avérer exacte ! il suffit que celui qui la commise se soit trompé...

Bon dev
@+

Firetox
http://www.Emidev.fr

[PS] je ne repond pas au message privé[/PS]
emidev
Membre Confirmé
 
Messages: 622
Inscription: Lun Nov 16, 2009 10:05 am
Localisation: GRENOBLE

Re: [Résolu]Touche clavier assigner une action

Messagepar iznogood » Lun Fév 22, 2010 4:21 pm

Merci mille fois je le met en place et je teste .
iznogood
Membre Confirmé
 
Messages: 219
Inscription: Lun Juin 02, 2008 7:27 pm

Re: Touche clavier assigner une action

Messagepar Caféine » Mar Fév 23, 2010 8:31 am

iznogood a écrit:Et comment connaitre les numéros assignés aux touches clavier.


dans l'aide de windev, fait une recherche sur le mot "vk_space"
tu auras 2 résultats de recherche :
1 _ ToucheEnfoncée
2 _ Valeur des constantes de l'API Windows 32 bits

laliste des touches est dans Valeur des constantes de l'API Windows 32 bits
ce sont toutes les valeurs qui commencent par VK_
les noms sont assez explicites (pour les anglophones)

    ... par exemple
    VK_DELETE = 46
    VK_PRINT = 42
    VK_DIVIDE = 111
    VK_PRIOR = 33
    VK_DOWN = 40
    VK_END = 35
    ...


dans l'initialisation de ton projet tu peux aussi mettre
Code: Tout sélectionner
EXTERNE "WinConst.wl"

ça permet d'utiliser directement les constantes VK_* plutot que leurs valeurs chiffrées
Caféine
Membre
 
Messages: 51
Inscription: Mer Juil 30, 2008 8:47 am



  • Advertisement

Retourner vers Forum windev 11 & plus récentes

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité