En fait, je dois ouvrir différentes fenêtres selon que le focus sois dans le
champ de saisie 1 ou dans le champ de saisie 2 par exemple. J'ai tout ce qu'il
fallait sauf que je n'arrive pas à choper l'enfoncement des touches du style F8.
Je débute sous Windev et il faut absolument que j'y parvienne. C'est important.
Merci d'avance.
@+
Kirt@p.
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr
Salut
// Init du projet
(...)
GLOBAL
CONSTANT
// les touches F1 à F24
VK_F1 = 112
(...)
VK_F24 = 135
// les évenements Touche Enfoncée et Touche Relachée (utiliser l'un ou
l'autre au choix)
WM_KEYDOWN = 256
WM_KEYUP = 257
FIN
// *** Solution 1 : un gestionnaire par champ *** //
// init de la fenêtre
Evenement("MonChamp_OnKeyDown", "MonChamp", WM_KEYDOWN)
// proc "MonChamp_OnKeyDown"
PROCEDURE MonChamp_OnKeyDown()
SELON _EVE.wParam
CAS VK_F1:
// ce qu'il y a à faire pour ce champs et cette touche
CAS VK_F2:
// ce qu'il y a à faire pour ce champs et cette touche
(...)
AUTRE CAS:
// bin, rien
FIN
// *** Solution 2 : un seul gestionnaire pour tous les champs *** //
// init de la fenêtre
Evenement("OnKeyDown", ".*", WM_KEYDOWN)
// proc "OnKeyDown"
PROCEDURE OnKeyDown()
SELON _EVE.Nom // nom du champs
CAS "Champ1"
SELON _EVE.wParam
CAS VK_F1:
// ce qu'il y a à faire pour ce champs et cette touche
CAS VK_F2:
// ce qu'il y a à faire pour ce champs et cette touche
(...)
AUTRE CAS:
// bin, rien
FIN
(...)
CAS "Champ10"
SELON _EVE.wParam
CAS VK_F1:
// ce qu'il y a à faire pour ce champs et cette touche
CAS VK_F2:
// ce qu'il y a à faire pour ce champs et cette touche
(...)
AUTRE CAS:
// bin, rien
FIN
AUTRE CAS
// les champs non concernés, donc on ne fait rien
FIN
F1 -> 'Evenement' te donnera plus d'infos
Les constantes sont dans AppelDll.HLP, constantes 32 bits
(enfin... si ton appli est en 32 bits)
Bon dev
Bruno
---------------
b.desthuilliers
Développeur
Acovit
---------------
créer un bouton caché, avec lettre d'appel associée = F8
Mettre l'évènement à déclancher dans le code du bouton
--
Utilisez notre serveur de news 'news.foorum.com' depuis n'importe ou.
Plus d'info sur : http://nnrpinfo.go.foorum.fr/
<BEURK>
Voila précisemment le genre de bidouille m...euse qui fait passer
Windev pour un gadget et les développeurs Windev pour des
branquignols.
Je ne vois pas en quoi c'est plus simple, par contre je vois en quoi
c'est plus crade et accessoirement plus gourmand en ressources.
Un bouton ne sert pas à gérer les touches claviers, pas plus q'une
liste ne sert à stocker des informations en mémoire. Dans le deuxième
cas, on utilise un tableau ou une zone mémoire, et dans le premier on
écrit un gestionnaire pour les messages liés aux touches du clavier.
</BEURK>
Etonnant comme réponse...
> Simple et rapide.
Pour le programmeur, éventuellement... Quoique :
- je ne vois pas ce qu'il y a de compliqué dans la fonction
Evenement(),
- je trouve plus clair d'avoir du code qui gère explicitement un
évènement que
d'avoir des boutons et des champs cachés. Au niveau de la maintenance,
on se pose nettement moins de questions.
Pour le programme, par contre, en termes de complexité du code et de
consommation de ressources, je doute que ce soit plus simple et plus
rapide.
Je ne sais pas si 'l'objectif' de Windev est de plaire aux 'puristes'
mais je ne vois pas en quoi le fait de développer sous Windev
interdirait de le faire proprement (à moins que le 'purisme' ne soit
là ?)
> Je trouve que c'est un avantage de Windev que de permettre ce genre de truc
Le coup du champ caché peut aussi bien se faire en VB, en C, en Java,
bref dans n'importe quel environnement où tu gère une interface
graphique.
Maintenant, essaye de l'écrire en C, et tu comprendra pourquoi ce
n'est *certainement pas* plus simple et plus rapide.
Mais bon, comme tu dis, chacun peut faire ce qu'il veut... J'espère
juste ne pas avoir à maintenir les programmes de certains :-/