[RESOLU] control de saisie
Developpeur WDF
Inscrit:
21/06/2005 18:17
Post(s): 115
Bonjour a tous,

Je cherche à faire un control de saisie sur un champ texte n'autorisant la saie que des lettres, des chiffres et de certain symbole.

J'ai pensé faire ce control sur l'évènement "Sur touche enfoncée" mais je ne vois pas comment récupérer la touche qui a été enfoncée pour contrôler si la saisie doit être validé ou non. A mon avis c'est la méthode a adoptée.

J'ai également essayé de faire le contrôle sur l'évènement "A chaque modification" du champ de saisie en question de la manière suivante :
1- je récupère dans la chaîne le dernier caractère.
2- je regarde s’il fait partie de ma chaîne des caractères autorisé.
3- si ce n'est pas un caractère autorisé je renvoi au champ de saisie ce qu'il y a dedans moins le dernier caractère.

Le problème de cette méthode est que le focus de saisie ce retrouve au début de la chaîne.

Si quelqu'un a une solution je le remercie de son aide !

@++

Contribution le : 12/10/2005 11:19
Créer un fichier PDF de la contribution Imprimer


Re: control de saisie
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour, aucun des masques de saisie ne vous convient ?

Une solution, intercepter, pas un évènement sur la touche enfoncée (WM_KEYDOWN dans les évènements du code du champ), les codes ascii des caractères non permis en renvoyant 0

Externe "KEYCONST.WL"
// Touche enfoncée (WM_KEYDOWN) de saisie1
SI _EVE.wparam = VK_ESCAPE ALORS
	_EVE.retour = 0
FIN


Ou bien en créant l'évènemement et sa procédure :
Evénement("Touches", "SAISIE1", WM_KEYDOWN)
//...
PROCEDURE Touches(Message, wParam, lParam)
// dans ce cas on coupe la touche echap
si wparam = VK_ESCAPE ALORS RENVOYER 0





Contribution le : 12/10/2005 11:32
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: control de saisie
Developpeur WDF
Inscrit:
21/06/2005 18:17
Post(s): 115
Merci de ta réponse.

Effectivement aucun masque de saisie ne me convient puisque je souhaite autoriser la saisie des lettres, des chiffres ,et de certain symbole comme par exemple @ et - mais pas de ;,?

J'ai fait des tests avec les bouts de code que tu m'a donner mais je m'en sort pas !

voila ce que j'ai fait :

Dans évènement sur la touche enfoncée (WM_KEYDOWN dans les évènements du code du champ)

SI Position(,Caract(_EVE.wparam),DepuisDébut,SansCasse)=0 ALORS
_EVE.retour = 0
FIN

mais ca annule pas la saisie de la touche !

Contribution le : 12/10/2005 12:34
Créer un fichier PDF de la contribution Imprimer


Re: control de saisie
DSI WDF
Inscrit:
03/12/2004 07:46
Post(s): 235
Je ne suis pas sur d'avoir bien compris ton problème mais je donne quand-même ma solution
Tu peux également, je crois, contrôler la saisie avec une expression régulière.
Il y a une fonction VerifieExpressionReguliere
voir l'aide en ligne.


Contribution le : 12/10/2005 12:57
Créer un fichier PDF de la contribution Imprimer


Re: control de saisie
Developpeur WDF
Inscrit:
21/06/2005 18:17
Post(s): 115
en fait je voudrai qu'on puisse saisir uniquement ces caractères
E1A2I3O4U5N6R7S8T9U0L@D-MBCFGHPVJKQWXYZ et des espaces.

Contribution le : 12/10/2005 13:54
Créer un fichier PDF de la contribution Imprimer


Re: control de saisie
DSI WDF
Inscrit:
03/12/2004 07:46
Post(s): 235
En effet je n'avait compris que ton problème n'était pas vérifier la valeur saisie mais de supprimer le caractère saisi si il ne convenait pas.

Solution non testée mais je ne vois pas ce qui pourrait clocher.
Tu sauves la valeur du champ avant saisie dans une variable (j'utilise souvent la propriété note du champ pour ça).
Si le caractére saisi est correcte tu affecte à la variable la valeur du champ.
Si le caractére est mauvais tu affectes au champ la valeur de la variable et tu repositionnes correctement le curseur.


Contribution le : 12/10/2005 16:14
Créer un fichier PDF de la contribution Imprimer


Re: control de saisie
Anonyme
Merci de ta réponse ... tu m'a aider a résoudre mon problème j'avais presque la solution mais je trouvait pas comment replacer le curseur.

SI Position(" E1A2I3O4U5N6R7S8T9U0L@D-MBCFGHPVJKQWXYZ",Droite(saisie1 ,1),DepuisDébut,SansCasse)=0 ALORS
	saisie1 = Gauche(saisie1 ,Taille(saisie1 )-1)
	saisie1..Curseur = Taille ( saisie1 ) + 1
	RETOUR	
FIN


Voila ma soluce !

Contribution le : 12/10/2005 16:37
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2