| |
Posted on September, 13 2004 - 12:29 PM |
Bonjour
J'aimerais empêcher l'utilisateur de saisir le caractère % dans un champ de saisie.
J'utilise le code suivant dans l'évênement Touche enfoncée du champ de saisie:
SI (ToucheEnfoncée(teShift) ET ToucheEnfoncée(ASC("5"))) ALORS _EVE.Retour = 0 FIN
Le caractère % est malgré tout transmis au champ de saisie.
Est-ce que quelqu'un a une solution?
Merci de vos réponses
Alain |
| |
| |
| | | |
|
| | |
| |
Posted on September, 13 2004 - 1:07 PM |
Bonjour,
Utiliser _EVE.wParam dans l'événement 'MonChamp_OnKeyDown'.
cCar = _EVE.wParam si asc(cCar) = 37 alors traitement_d_effacement ... fin
Bien cordialement,
Jacques De Schryver |
| |
| |
| | | |
|
| | |
| |
Posted on September, 13 2004 - 3:21 PM |
Puisque je me trouve dans l'evenement OnKeyDown la valeur de la touche n'a pas encore été affectée à mon champ. Je ne peux donc pas effacer le caractère % du champ.
J'aimerais en fait annuler l'evenement OnKeyDown. Faire comme si l'utilisateur n'avait pas appuyer sur cette touche. |
| |
| |
| | | |
|
| | |
| |
Posted on September, 13 2004 - 3:23 PM |
Sur la LST 57, il y a un exemple de contrôle de la saisie grâce aux expressions régulières. Je pense que celà peut-être une solution élégante pour interdire directement dans le champs la saisie du caractère %
à tester ... |
| |
| |
| | | |
|
| | |
| |
Posted on September, 13 2004 - 3:52 PM |
A mon avis il faut que tu mette ton évènement sur touche relachée !!!! |
| |
| |
| | | |
|
| | |
| |
Posted on September, 13 2004 - 4:42 PM |
encore plus simple "Aurélien MACHABERT" <guest@newsgroup.fr> a écrit dans le message de news:41458976@news.pcsoft.fr...
A mon avis il faut que tu mette ton évènement sur touche relachée !!!!
a chaque modification du champ tu fais monchamp = remplace(mochamp,"%","") et hop le tour est joué !
Bon dév,
Fred |
| |
| |
| | | |
|
| | |
| |
Posted on September, 13 2004 - 4:53 PM |
en global EXTERNE "KEYCONST.wl" ccar est un entier
puis
A chaque modification de saisie1 ccar = _EVE.wParam
SI ccar = 192 ALORS Info("Interception du caractère % depuis 'A chaque modification de saisie1'") Saisie1 = Gauche(Saisie1,Taille(Saisie1) - 1) RETOUR FIN
//Le caractère % donne une valeur ascii de 192 au lieu de 37, mais bon, cela marche. |
| |
| |
| | | |
|
| | |
| |
Posted on September, 13 2004 - 5:59 PM |
Bonjour Alain, Ta remarque est pertinente, mais c'est l'avantage de cette methode, c'est justement parce qu'elle n'est pas encore affichée que l'on test le contenu du buffer.
A tester: la méthode que t'indique Jacques De Schryver me parait donc la meilleur. Il suffit juste de saisir ce qui suit pour effacer le caractère //soit _EVE.Retour = 0 //Rien du tout //ou bien RENVOYER 0 //Ce qui semble être la nouvelle syntaxte depuis WinDev7.
A+ [DrCharly93]
"Alain" <alain.duc@netplus.ch> a écrit dans le message de news: 41458212@news.pcsoft.fr...
Puisque je me trouve dans l'evenement OnKeyDown la valeur de la touche n'a pas encore été affectée à mon champ. Je ne peux donc pas effacer le caractère % du champ.
J'aimerais en fait annuler l'evenement OnKeyDown. Faire comme si l'utilisateur n'avait pas appuyer sur cette touche.
|
| |
| |
| | | |
|
| | |
| |
Posted on September, 13 2004 - 7:21 PM |
C'est presque la solution...
Il faut utiliser ce code dans l'evenement Touche appuyee(WM_CHAR) et non Touche enfoncee(WM_KEYDOWN):
SI (_EVE.wParam = 37) ALORS RENVOYER Faux //ou Renvoyer 0 //ou _EVE.Retour = 0 FIN
Merci de votre aide.
Alain |
| |
| |
| | | |
|
| | |