Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Evenements declenches par touches du clavier

661 views
Skip to first unread message

kirtap

unread,
Apr 3, 2002, 6:16:19 AM4/3/02
to

Salut.
J'ai un gros pb ! Je n'arrive pas à déclencher des évènements lorsque la touche
F8 est enfoncée (de même pour F2, F4,...) car je ne connais pas la méthode à
utiliser sous Windev.

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

http://forums.club-internet.fr/

Bruno Desthuilliers

unread,
Apr 3, 2002, 9:54:57 AM4/3/02
to
kirtap <patag...@hotmail.com> wrote in message news:<200243-121...@foorum.com>...

> Salut.
> J'ai un gros pb ! Je n'arrive pas à déclencher des évènements lorsque la touche
> F8 est enfoncée (de même pour F2, F4,...) car je ne connais pas la méthode à
> utiliser sous Windev.
>
> 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.
> @+
>

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
---------------

O. Racleux

unread,
Apr 3, 2002, 12:50:48 PM4/3/02
to

Y'a + simple

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/

Bruno Desthuilliers

unread,
Apr 4, 2002, 2:25:19 AM4/4/02
to
O. Racleux <no...@nopub.com> wrote in message news:<200243-185...@foorum.com>...

> Y'a + simple
>
> créer un bouton caché, avec lettre d'appel associée = F8
> Mettre l'évènement à déclancher dans le code du bouton

<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>

Michel Arnaud

unread,
Apr 4, 2002, 4:39:51 AM4/4/02
to

Etonnant comme réponse
Moi aussi j'utilise cette méthode des boutons (ou des champs) cachés souvent
Je trouve que c'est un avantage de Windev que de permettre ce genre de truc.
Simple et rapide. Je ne crois pas que l'objectif de Windev soit de plaire aux
puristes... Mais bon, l'avantage ici, c'est que chacun peut faire ce qu'il veut:
comme ça personne n'est frustré !

Bruno Desthuilliers

unread,
Apr 5, 2002, 3:15:43 AM4/5/02
to
Michel Arnaud <michel.arnaud@imbfrance> wrote in message news:<200244-103...@foorum.com>...

> Etonnant comme réponse
> Moi aussi j'utilise cette méthode des boutons (ou des champs) cachés souvent
> Je trouve que c'est un avantage de Windev que de permettre ce genre de truc.
> Simple et rapide. Je ne crois pas que l'objectif de Windev soit de plaire aux
> puristes... Mais bon, l'avantage ici, c'est que chacun peut faire ce qu'il veut:
> comme ça personne n'est frustré !


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 :-/

0 new messages