Gambas France BETA


Pas de compte ? Incription

Tri sur un textBox

1
AuteurMessages
Invité#1 Posté le 4/3/2010 à 19:21:00
Re BJr

je veux réaliser un tri d'entrée sur une texte box qui ne prendra en compte que les chiffres

J'arrive avec Key_realease mais pas avec key_press

avec key_press j'ai un soucis dans le sens ou la valeur qui est effacée n'est jamais celle entrée mais la suivante??(':scratch:')

1
PUBLIC SUB TextBox1_Entrer_a_KeyPress()test_entree_a = Asc(Key.Text)test = Val(test_entree_a)IF test < 48 OR test > 57 OR NOT test = 43 OR NOT test = 45 OR NOT test = 46 THEN Label1_EntrerValeur_abc.Text = "verifie comme lettre" TextBox1_Entrer_a.Text = Left$(TextBox1_Entrer_a.Text, -1) ELSE Label1_EntrerValeur_abc.Text = " verifié comme chiffre" EN IF


si je tape un "m" le m est effacée a l'entree d'une autre lettre mais pas par un chiffre
je voudrais l'effacée desuite

???
avec key_release ca fonctionne ! bizarre
micio#2 Posté le 4/3/2010 à 20:23:00
Je ne comprends pas bien mais peut-être que cela pourra vous aider

1
'événement KeyPress() pour TextBox1PUBLIC SUB TextBox1_KeyPress() DIM t AS String t = Key.Text 'si le caractère n'est pas lettre ou pas ponctuation ou pas espace ou pas null IF NOT (IsLetter(t) XOR IsPunct(t) XOR IsBlank(t) XOR IsNull(t)) THEN 'on stopen l'événement la saisie n'est pas prise en compte par TextBox1 STOP EVENT ENDIFEND
Invité#3 Posté le 4/3/2010 à 23:49:00
avec stop event cela eclaircit le code : Merci

Mais j'ai le probleme de restreindre l'entrée de Deux . ou Deux -
jeanyvon#4 Posté le 5/3/2010 à 07:43:00
Gambas? Ma! Et gustoSalut,
est-ce que ça te va mieux

1
PUBLIC SUB TextBox1_KeyPress() IF Asc(Key.Text) < 46 OR Asc(Key.Text) > 57 AND Asc(Key.Text) <> 32 AND Asc(Key.Text) <> 8 AND Asc(Key.Text) <> 9 AND Asc(Key.Text) <> 127 THEN STOP EVENT ENDIF END


a+
JY
Vieillir? On peut retarder mais pas y échapper!
Invité#5 Posté le 5/3/2010 à 14:24:00
Jean Yvon
c'est a peu de chose pres avec l'espace et le supprime le même code que jai posté plus haut

Le soucis est dans la gestion du . et du -
quand un signe - ou . a été rentré il ne faut pas en re entrer un autre et si on l'efface il faut pouvoir le re ecrire

voilà

Le pire c'est que avec keyrealese j'y arrive ! lol
micio#6 Posté le 5/3/2010 à 17:02:00
Une autre proposition ?


1
PUBLIC SUB TextBox1_KeyPress() DIM c AS STRING = Key.Text DIM p AS INTEGER = TextBox1.pos IF c = "-" AND p = 0 THEN RETURN ELSE IF c = "." AND p = 0 THEN RETURN ENDIF IF p > 0 THEN IF c = "-" AND Mid(TextBox1.text, p, 1) <> "-" THEN RETURN ELSE IF c = "." AND Mid(TextBox1.text, p, 1) <> "." THEN RETURN ENDIF ENDIF IF Asc(c) > 47 AND Asc(c) < 58 XOR Asc(c) < 32 THEN RETURN ELSE STOP EVENT ENDIFEND
Invité#7 Posté le 5/3/2010 à 21:16:00
micio

l'idée de vérifier sur la position dans la textbox est super

Mais cela ne fonctionne pas car je pense , si je ne me trompe pas, que dans l'événement Key_Press , l'appui sur une touche n'enregistre pas dans la textbox immédiatement mais au relâchement de la touche, d'ouï le non fonctionnement du code que tu proposes et de ceux que j'ai essayé

J'ai bien essayé de triée les entrées avec keypress et de vérifier la textbox dans key_change mais toujours en vain pour l'instant
micio#8 Posté le 5/3/2010 à 21:45:00
Désolé je ne comprends pas ce que vous voulez faire ?
Invité#9 Posté le 5/3/2010 à 22:19:00
je veux tout simplement que dans la texbox si


le signe "-" a été ou le signe "." a été entré une fois il ne puisse pas être re entré , mais s'il est effacé par backspace, il pourra etre re entré

cette texte box ne doit pouvoir accepter que des entiers ou des floats negatifs ou postifs
micio#10 Posté le 5/3/2010 à 23:41:00
Nouvelle tentative, j'ai testé et chez moi ça marche très bien.


1
PUBLIC SUB TextBox1_KeyPress() DIM c AS STRING = Key.Text IF c = "-" AND InStr(TextBox1.text, "-") = FALSE THEN TextBox1.pos = 0 RETURN ELSE IF c = "." AND InStr(TextBox1.text, ".") = FALSE THEN RETURN ELSE IF (Asc(c) > 47 AND Asc(c) < 58) XOR Asc(c) < 32 XOR Asc(c) = 127 THEN RETURN ELSE STOP EVENT ENDIFEND
Invité#11 Posté le 6/3/2010 à 00:13:00
OUI super cela fonctionne très bien

Merci beaucoup Micio
gambix#12 Posté le 7/3/2010 à 17:12:00
Faire simple !va falloir que je me méfie ... il est très bon ce micio ;) (sérieux)
Moins de texte dans une signature c'est agrandir son espace.
1