Saisies controlées diverses (alphabétiques et numériques)

Soyez le premier à donner votre avis sur cette source.

Vue 10 234 fois - Téléchargée 1 374 fois

Description

Voilà donc, comme promis,

Après plusieurs (trop nombreuses et trop fréquentes à mon sens) discussions ouvertes sur ce forum en matière de saisies contrôlées,j'ai voulu eaufiner cette petite démonstration.

J'ai également gardé à l'esprit mes voeux habituels d'indépendance à l'égard des ocx qui existent pour parvenir aux mêmes résultats. Ce voeu d'indépendance est bien évidemment accompagné de mon souci permanent de ne pas me trouver piégé par de nouvelles versions de Windows (avec, à la clef quelquefois, la non reconnaissance de certains composants...)

cette petite démonstration regroupe des saisies contrôlées de textes alphabétiques et alphanumériques et des saisies
contrôlées de nombres, décimaux ou non.

En ce qui concerne les saisies de texte, je n'ai donné que quelques exemples mais chacun verra vite comment ajouter des formats personnalisés.

En ce qui concerne les saisies de nombres, sont paramétrables les éléments suivants :
- séparateur de décimales, ou même : choix total laissé à l'utilisateur sans qu'il ait à le manifester expressément (l'outil comprend seul sa volonté)
Quel que soit ce choix (virgule ou point), l'enregistrement éventuel du chiffre se fait par utilisation du signe point, ce qui évite ensuite les surprises traditionnelles, par l'utilis ation de l'une des fonctions de l'outil
- nombre de décimales

L'outil n'utilise que l'événement Change, ce qui fait que, contrairement à l'utilisation de l'événement Keypress qui ne protège pas totalement, tout est sans cesse contrôlé, y compris les éventuels copiés/collés qui échappent à l'événement Keypress

voilà donc...

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
28 avril 2007 à 19:12
Salut Jmfmarques,

Bon ce soir ou demain je regarde ta source et reviens plus tard....

Note : Maintenant on pourra mettre ce lien à des questions du forum portant sur ce sujet...lol..

A+
Exploreur
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
28 avril 2007 à 19:18
Salut Marques,

Ah l' événement Change () et le chien qui se mord la queue !
Personne ne me croit ...

Prenons
Private Sub Text1_Change()
Static stat1 As String
controle_texte "#", ActiveControl, stat1 ' > faisant un point d' arrêt à ce niveau
End Sub

Avec un chiffre pas de problème
Mais si on tappe "a"
> Execution de la fonction control
tout se passe bien jusqu' à
ctrl.Text mret > Déclenchement de Text1_Change()
et rééxécution de la fonction controle...

End Sub

Ma parade :
Public SelfChange As Boolean

Private Sub Text1_Change()
If SelfChange=True Then Exit Sub
SelfChange=True
Static stat1 As String
controle_texte "#", ActiveControl, stat1 ' > faisant un point d' arrêt à ce niveau
SelfChange=False
End Sub

A part ça je n' ai pas encore fait de tests approffondis.Mais à premier vue ça semble correct.
En fait j' ai tellement horreur de l' événement Change que je n' ai pas pu m' empêcher
de le tester en premier.


A+
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 avril 2007 à 19:20
Hum, pourquoi faire le contrôle uniquement dans le change ? Dans le KeyPress, c'est plus esthétique : on ne voit pas les caractères si tu les annule lors de la saisie de l'utilisateur.

DarK Sidious
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 avril 2007 à 19:45
Oui, Nicolas, l'événement keypress n'est pas mal et est plus facile à programmer, mais....

Il te fayt alors également gérer (dans le click), l'impossibilité de copieés/collés !

De surcroit : OK, on gère le presse-papier (on le vide au click) mais en faisant ainsi tu ne peux plus, du coup, faire un copier-coller cohérent et voulu !

Mais pire encore : OK pour vider le presse-papier au click, mais voilà :
1) je frappe 1234,12
2) je clique et sélectionne
3) je relache la souris et y vais : CTRL-C ==>> 4 ou 5 fois CTRL-V ==>> vois le résultat

Ah zut, alors ! il va falloir gérer celà aussi ...
Allons bon ! Mais c'est faisable en effaçant aussi le clipboard et (également) en désélectionnant par sellenght au MouseUp !

Alors :
- 1e keypress pour gérer la frappe
- le click pour vider le clipboard de ce qui aurait été copié d'ailleurs
- le mouseup pour déselectionner de qui aurait été sélectionné dans la textbox même et vider aussi le clipboard...

et tu perds de toutes façon :
1) la possibilité de copier-coller souhaités depuis aolleurs
2) la possibilité de copier ta propre textbox pour coller ailleurs ...

Voilà pourquoi j'ai choisi l'événement change (un seul événement pour tout)

J'ai presque fini en ce qui concerne la saisie contrôlée des dates et heures.... Si j'utilisais pour ces saisies l'événement keypress, ce serait pire encore, sauf à inhiber carrément la souris !!!
freeman151248 Messages postés 16 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 31 mars 2011
6 nov. 2007 à 11:12
Bonjour,

Ce sujet est récurant et semble sans fin ayant posté moi-même une demande d'aide! donc finalement pas si trivial.

Je trouve cette source trés intéressante qui répond trés bien à mon souci donc merci!! donc un gros 10 pour moi!

A+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.