| interception appui clavier sur touche de Fonction | |
|
|
Auteur | Message |
---|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: interception appui clavier sur touche de Fonction Lun 8 Mai 2017 - 13:53 | |
| Bonjour à tous, j'aimerai intercepter l'appui sur une touche de fonction du clavier, pour l'utiliser dans un programme. J'ai fait le code ci-dessous et je ne comprends pas pourquoi je n'ai pas de réponse pour les touches de fonctions (et aussi les flèches) , alors que j'ai des réponses pour les autres touches. - Code:
-
label touche : dim a$ timer 1: timer_interval 1,100 :timer_on 1 on_timer 1, touche
END
touche: timer_off 1 a$=inkey$ if a$="" ' rien else message "a$="+a$+" scancode="+str$(scancode)+" asc(a$)="+str$(asc(a$)) a$="" end_if timer_on 1 return
Si vous avez une réponse..... A+ | |
|
| |
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: interception appui clavier sur touche de Fonction Lun 8 Mai 2017 - 14:26 | |
| Tu ne peux pas faire autrement que d'utiliser SCANCODE ou les commandes KEY_XXX, c'est le seul moyen. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: interception appui clavier sur touche de Fonction Lun 8 Mai 2017 - 14:36 | |
| Essaie ceci: - Code:
-
label keyup
alpha 1 : top 1,10 : left 1,10 : caption 1,"Touche:" alpha 2 : top 2,10 : left 2,100
on_key_down 0,keyup
end
keyup: caption 2,str$(scancode) return Je pense que le problème vient de l'usage du timer qui ne tombe pas forcément lorsque scancode est chargé. | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: interception appui clavier sur touche de Fonction Lun 8 Mai 2017 - 16:24 | |
| Merci à vous deux pour vos réponses. @Klaus, Oui, ton code fonctionne, mais le problème c'est que si le focus est sur un autre objet ça ne marche pas. En fait, j'ai mal précisé ce que je veux. Mon besoin est d'avoir une surveillance continu des touches de fonctions pendant le déroulement d'un programme et ce, quelque soit l'objet qui ai le focus. Exemple: pendant que l'utilisateur écrit du code dans un éditeur (Synedit) il peut enfoncer la touche F1 et ainsi la fenêtre aide s'ouvre. C'est pourquoi j'ai utilisé un timer. @Sylverman, J'utilise bien Scancode (c'est dans le message), mais si j'utilise inkey$ c'est parce que les commandes on_key... sont obligatoirement liées à un objet Panoramic. Ce n'est pas ce que je recherche. Ce que je ne comprend pas c'est que mon code fonctionne, mais pas sur les touche de fonction A+ PS: j'ai un vague souvenir qu'avec QickBasic c'était possible, et pour cela il fallait affecter des caractères (spéciaux) aux touches de fonction. Mais, je ne vois rien dans Panoramic pour le faire.
| |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: interception appui clavier sur touche de Fonction Lun 8 Mai 2017 - 18:42 | |
| Bonjour à tous ! Jean-Claude, peux-tu essayer ceci : - Code:
-
label touche : dim a$ timer 1: timer_interval 1,100 :timer_on 1 on_timer 1, touche
END
touche: timer_off 1 if scancode > 2 message "a$="+a$+" scancode="+str$(scancode)+" asc(a$)="+str$(asc(a$)) end_if timer_on 1 return
| |
|
| |
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: interception appui clavier sur touche de Fonction Lun 8 Mai 2017 - 18:57 | |
| Bien sur que si tu peux utiliser les KEY_XXX en programmation séquentielle, je n'ai pas parlé des ON_KEY_XXX. - Code:
-
label touche : dim a$ timer 1: timer_interval 1,100 :timer_on 1 on_timer 1, touche
END
touche: timer_off 1 caption 0,str$(key_up_code)+" / "+str$(key_up_special)+" / "+str$(key_down_code)+" / "+str$(key_down_special)+" / "+str$(scancode) timer_on 1 return
Dernière édition par silverman le Lun 8 Mai 2017 - 18:58, édité 1 fois | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: interception appui clavier sur touche de Fonction Lun 8 Mai 2017 - 18:58 | |
| Bravo Marc ! ça marche J'avoue que je ne pige pas pourquoi ça marche. Mais bon, je prends. A+ | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: interception appui clavier sur touche de Fonction Lun 8 Mai 2017 - 19:05 | |
| @Sylverman, Dans ton code Scancode=0 , mais ce n'est pas grave puisque les KEY_.... fonctionnent. Je me suis bêtement enfermé dans mon raisonnement qui était faux: je pensais que pour utiliser KEY_... il fallait d'abord avoir codé un ON_KEY_... C'est là où j'ai bloqué. Comme quoi, sans le forum on est perdu... MERCI à vous deux. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: interception appui clavier sur touche de Fonction Mer 11 Sep 2019 - 17:08 | |
| Bonjour a tous ! Comme je me demander comment déclencher les touches sur plusieurs FORMs, j'ai retrouvé ce topic de mai 2017... En particulier le code de Silverman qui corresponds tout à fait à mes besoins. Je l'ai intégré dans PanExpress mais celui-ci refuse de fonctionner. J'ai fait en sorte de retirer tous les ON_KEY... ET tous les OFF_KEY... de mon programme pour qu'il n'y ai pas d’interférences. le sous-programme est appeler tous les 100ms avec la ligne suivante : CAPTION ALP_FEN%(0),TIME$+" : "+STR$(KEY_DOWN_SPECIAL)+" "+STR$(KEY_DOWN_CODE)+" / "+STR$(KEY_UP_SPECIAL)+" "+STR$(KEY_UP_CODE) Ce qui me permet de voir l'heure défiler et donc savoir que la boucle est bien exécutée. Par contre toutes les valeurs restent à zéro malgré l'appui sur différentes touches ! Est ce que quelqu'un a une idée du problème ? | |
|
| |
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: interception appui clavier sur touche de Fonction Jeu 12 Sep 2019 - 9:28 | |
| le form/l'objet concerné par l'appui des touches doit avoir le focus, ça vient peut être de là... | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: interception appui clavier sur touche de Fonction Jeu 12 Sep 2019 - 10:16 | |
| Merci pour ta réponse Silverman ! La nuit portant conseil, j'avais dans l'idée quelque chose comme çà. Je vais tester tout çà aujourd'hui. C'est vrai que PanExpress est devenu assez complexe, c'est pourquoi j'essaye de restructurer cette dernière version. Mais tout cela entraîne de nombreuses modifications qui génèrent elles même autre choses. C'est un peu compliqué... Cela dit j'arrive à la fin de ces modifications et si je trouve la solution pour les touches je pourrais bientôt sortir la nouvelle version. Encore merci ! | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: interception appui clavier sur touche de Fonction Jeu 12 Sep 2019 - 12:23 | |
| Ça y est j'ai trouvé ! J'ai fait plusieurs tests depuis près de 2h environ et je crois avoir la meilleure solution. Je vais installer un ON_KEY_DOWN sur tous les FORMs du programme. Et ensuite je les rajouterai sur les objets de saisie tels que EDIT, COMBO... Concernant les objets cliquables tels de BUTTON, PANEL.. je redonne le focus au FORM parent en fin de traitement du sous-programme. Comme cela je peut répondre à toutes les touches avec un seul sous-programme qui gère tout ! Merci pour ton message Silverman. Il m'a ouvert les yeux (et l'esprit...) ! | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 14 Sep 2019 - 13:23 | |
| Perso, je place un EDIT caché par un autre objet sur le Form 0 et c' est vers lui que je renvoi systématiquement le focus. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: interception appui clavier sur touche de Fonction Sam 14 Sep 2019 - 13:31 | |
| Salut Yannick ! Te casses pas la tête... La solution que j'ai utilisé ci-dessus fonctionne parfaitement ! C'est vrai qu'avec une quinzaine de FORMs et des interactions régulières entre chaque il faut bien planifier le truc... Le tout fonctionne parfaitement. Il ne me reste plus que quelques fenêtres à régler et ce sera terminé pour cette partie. Ouf ! Encore un bon morceau de fait. Je pense que je vais pouvoir sortir la nouvelle version de PanExpress d'ici 1 jour ou 2... | |
|
| |
Contenu sponsorisé
| Sujet: Re: interception appui clavier sur touche de Fonction | |
| |
|
| |
| interception appui clavier sur touche de Fonction | |
|