MaskEdBox en majuscule

Résolu
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015 - 14 mars 2008 à 19:42
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015 - 14 mars 2008 à 20:47
Salut !

Je cherche a mettre en majuscule le texte que je met dans mon MaskEdBox. J'ai essayé ce code là :

Private SubMaskEdBox1_Change()
MaskEdBox1 = StrConv(MaskEdBox1, vbUpperCase)
MaskEdBox1.SelStart = Len(MaskEdBox1)
End Sub

Mais il m'envoit cette erreur :

Erreur d'exécution '28':
Espace de pile insuffisant

Quelqu'un peut m'aider svp ?

Merci

----------
OS        : Windows XP SP2
Platforme : VB 6.0 + SP6

Ok VB6.0 c'est pas net !

2 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
14 mars 2008 à 20:34
Forcément, le fait d'attribuer un texte au MaskEdBox1 va déclenché l'évènement Change dans lequelle tu attribut du texte qui déclenche l'évènement dans lequel ....... Tout ça jusqu'à ce que la pile des appels déborde d'ou le message d'erreur

Soit tu n'es pas forcé dutiliser l'évènement Change, dans ce cas il te faut trouver une autre astuce avec un autre évènement comme par exemple dans l'évènement keyPress, systématiquement modifier le caractère saisie par son correspondant majuscule :

Private Sub MaskEdBox1_KeyPress(KeyAscii As Integer)

   KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub<hr />
, ----
[code.aspx?ID=41455 By Renfield]
Soit tu es obligé d'utiliser l'évènement Change. Dans ce cas il faut que tu flagge ton code pour empecher qu'il soit réentrant (càd qu'il ne se réexecute alors qu'il est déjà en train de s'executer Ex:

Private Sub MaskEdBox1_Change()
Static flag As Boolean 'variable statique obligatoire pour conserver la valeur d'un appel à l'autre

   'Test du Flag
   If flag Then Exit Sub

   'Début du flaggage
   flag = True
   'Traitement
   MaskEdBox1 = StrConv(MaskEdBox1.Text, vbUpperCase)
   MaskEdBox1.SelStart = Len(MaskEdBox1.Text)
   'Fin du flaggage
   flag = False

End Sub
, ----
[code.aspx?ID=41455 By Renfield]
---- Sevyc64  (alias Casy) ----</italique> <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #   
3
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
14 mars 2008 à 20:47
Salut !

Puré !!!!!! Merci beaucoup Casy !
J'ai opté pour les deux dans deux cas bien différents ^^ Merci !

----------
OS        : Windows XP SP2
Platforme : VB 6.0 + SP6

Ok VB6.0 c'est pas net !
0
Rejoignez-nous