hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 18 déc. 2003 à 16:18
je suis d'accord que la 1ere methode soit pas la meilleur, mais la tienne (renfield) ne gere pas les accents, Ucase lui les gere.
donc un petit Ucase sur tout le texte (et pas char par char, en couplant asc et chr) , dans l'evenement textchange ou keypress, sera tout aussi efficace. (et vu que c'est de la saisie par l'user, je ne pense pas que les texte fassent + de qq Ko, ce qui niveau performance ne changera pas trop.)
c'est moins rapide, mais plus simple. et ça gere touts les accents ^^'
pour gvb...marrant ton nick..... :p
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 18 déc. 2003 à 07:45
Pas d'accord avec Gvb
Une simple manipulation d'entiers est bien préferable a l'utilisation empilée de TROIS fonctions...... coté optimisation, c'est pas top !!
La fonction ForceMaj n'est pas du meilleur gou non plus.... j'ajouterais même que sous cette forme, elle est inutile :
KeyAscii est passé par réference, ta fonction ne ourrait don être qu'une procédure !! :
Et Ca fonctionne Tout Autant !!
*************************
Public Sub ForceMaj(KeyAscii As Integer)
If KeyAscii > 96 And KeyAscii < 123 Then
KeyAscii = KeyAscii - 32
End If
End Function
Private Sub TxtBox_KeyPress(KeyAscii As Integer)
ForceMaj KeyAscii
End Sub
*************************
tu peux aussi faire ca pour tous tes TextBoxes d'un seul cou pp
Private sub Form_Load
Me.KeyPreview = True
end sub
Public Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii > 96 And KeyAscii < 123 Then KeyAscii = KeyAscii - 32
End Sub
cs_pepito
Messages postés2Date d'inscriptionlundi 27 décembre 1999StatutMembreDernière intervention20 octobre 2004 17 déc. 2003 à 14:09
Hum..
Oui, en effet!
A part l'aspect didactique concernant les valeurs ASCII des lettres,
je pense que ta solution est en tous points meilleure.
Bah..on apprend tous les jours ;-)
cs_kelly
Messages postés55Date d'inscriptionjeudi 1 mai 2003StatutMembreDernière intervention 9 septembre 2004 17 déc. 2003 à 13:20
eh ben j'aurais appris qqch aujourd'hui !
Gvb
Messages postés19Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention 5 novembre 2004 17 déc. 2003 à 12:55
Hello,
Tu peux également éviter l'appel d'une fonction en mettant directement dans l'événement Keypress le code suivant :
[
keyascii = Asc(Ucase(Chr(KeyAscii)))
]
Pour expliquer à ceux qui ne connaissent pas les petites fonctions utilisées :
Chr : retourne le caractère associé à un code Ascii
Ucase : transforme une chaîne de caractères en majuscule
Asc : retourne le code Ascii d'un caractère
18 déc. 2003 à 16:18
donc un petit Ucase sur tout le texte (et pas char par char, en couplant asc et chr) , dans l'evenement textchange ou keypress, sera tout aussi efficace. (et vu que c'est de la saisie par l'user, je ne pense pas que les texte fassent + de qq Ko, ce qui niveau performance ne changera pas trop.)
c'est moins rapide, mais plus simple. et ça gere touts les accents ^^'
pour gvb...marrant ton nick..... :p
18 déc. 2003 à 07:45
Une simple manipulation d'entiers est bien préferable a l'utilisation empilée de TROIS fonctions...... coté optimisation, c'est pas top !!
La fonction ForceMaj n'est pas du meilleur gou non plus.... j'ajouterais même que sous cette forme, elle est inutile :
KeyAscii est passé par réference, ta fonction ne ourrait don être qu'une procédure !! :
Et Ca fonctionne Tout Autant !!
*************************
Public Sub ForceMaj(KeyAscii As Integer)
If KeyAscii > 96 And KeyAscii < 123 Then
KeyAscii = KeyAscii - 32
End If
End Function
Private Sub TxtBox_KeyPress(KeyAscii As Integer)
ForceMaj KeyAscii
End Sub
*************************
tu peux aussi faire ca pour tous tes TextBoxes d'un seul cou pp
Private sub Form_Load
Me.KeyPreview = True
end sub
Public Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii > 96 And KeyAscii < 123 Then KeyAscii = KeyAscii - 32
End Sub
17 déc. 2003 à 14:09
Oui, en effet!
A part l'aspect didactique concernant les valeurs ASCII des lettres,
je pense que ta solution est en tous points meilleure.
Bah..on apprend tous les jours ;-)
17 déc. 2003 à 13:20
17 déc. 2003 à 12:55
Tu peux également éviter l'appel d'une fonction en mettant directement dans l'événement Keypress le code suivant :
[
keyascii = Asc(Ucase(Chr(KeyAscii)))
]
Pour expliquer à ceux qui ne connaissent pas les petites fonctions utilisées :
Chr : retourne le caractère associé à un code Ascii
Ucase : transforme une chaîne de caractères en majuscule
Asc : retourne le code Ascii d'un caractère
@+
Gvb