babyboydu92
Messages postés9Date d'inscriptionmardi 18 octobre 2005StatutMembreDernière intervention12 août 2007
-
10 janv. 2006 à 00:40
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 2010
-
10 janv. 2006 à 20:43
Bonjour,
Dans une application avec une textbox (mono ligne), je souhaite faire un retour chariot.
Je voudrai que lorsque la ligne de la texbox est remplit, que le curseur revienne en début de ligne, ceux qui me permettrai d'écraser la phrase précédente.
J'utilise les fonctions "vbcr" ou Chr$13 à la fin de chaque phrase, mais à chaque fois j'obtiens quelque chose qui ressemble à sa :
"ma phrase"|
quelqu'un peu t'il me sortir de cette impasse
Merci.
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 10 janv. 2006 à 14:02
Hum... Comme en chat tu veux dire !
En somme, tu veux que dès que tu valides un texte via la touche "Enter", l'ancienne phrase disparaisse et que donc, le curseur revienne au début...
C'est bien ça ou pas ???
Parce qu'il est vrai que tu n'es pas très clair!!!
Et pense à toujour nous indiquet dans quel langage tu codes...
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
Vous n’avez pas trouvé la réponse que vous recherchez ?
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 10 janv. 2006 à 19:15
Réponse pour super débutants!!! Si tu t'étais donné la
peinne de chercher juste un peu tu aurais trouvé sans trop de problèmes
je pense!!!
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
'-----------------------------------------------
'Si tu veux faire des choses avec le texte entré
'fait-les ici...
...
varAncienTexte = Text1.Text
...
'-----------------------------------------------
Text1.Text = ""
KeyAscii = 0
End If
End Sub
Bon, ceci dit, ça mérite quelques explications :
Dans "Private Sub Text1_KeyPress(KeyAscii As Integer)" Text1 est le nom de ta zone de saisie.
Ne change rien.
C'est une procédure dite "événementielle". Elle se déclanche lors de l'événement "KeyPress". Autrement dit, dès qu'un utilisateur a appuyé sur une touche (enfoncé le bouton puis relaché le bouton = presser le bouton). Donc, tout le code qui sera dedans sera exécuté à ce moment là (et uniquement à ce moment là !!!
La touche sur laquelle a appuyé l'utilisateur a un code transmit par le VB à la procédure via l'argument "KeyASCII". Autrement dit, toutes les touches on un code ASCII. Et le code ASCII de la touche qui a été pressée se trouve dans cette "variable" (argument)
On teste si ce code est bien celui de la touche "Return" ("Enter" quoi!). Pour ça, on utilise une constante VB. Autrement dit, "vbKeyReturn" est une "variable" "constante" (donc pas variable ;-) que le VB possède en interne. Cette constante VB a pour valeur le code ASCII de la touche "Return". Pourquoi une constante VB plutot que la valeur directement ??? Tu pourrais mettre la valeur si tu voulais mais à condition de t'en souvenir!!! Et comme ont est pas tous des machines à mémoriser des infos inutiles, ben... on utilise ces constantes. Remarque que le VB n'a pas que cette constante en "mémoire", il a toutes les autres touches du clavier. Du coup, si tu écris "vbKey" ("Key" en anglais = Clef, Touche), il te suffit de rajouter le nom (originel, pas en français!!!) de touche pour y faire référence. Par exemple : vbKeyF1 pour la touche "F1", vbKeyShift pour la touche Majuscule, vbKeyBack pour la touche Del (retour arrière), vbKeyB pour la lettre "B", ..., ..., ...
Donc, on a :
Si touche_pressée_par_l'utilisateur = toucheReturn Alor
fait tout ça
Fin du Si
Dans le "fait tout ça" tu dois mettre ce que tu veux faire. Ben wai, c'est pas tout d'entrer des lignes de texte puis de les effacer mais faut aussi en faire quelque chose (des lignes de texte) !!! C'est donc ici que tu dois mettre ce que tu veux leur faire faire.
Ensuite, on efface le contenu de la zone de texte, tout simplement en faisant appel à sa propriété Text (qui fait référence au texte qui est dedans!). On efface en lui assignant un texte vide (=""). Si on avait voulu lui mettre un texte par défaut ont aurait fait (="texte par défaut"), mais là, on n'a rien mis pour effacer la zone. Mais quoi qu'on y mette, comme ça, le nouveau texte remplacera toujours l'ancien (y'a bien une technique pour éviter cela mais là n'est pas le sujet).
Après avoir fait ça, on assigne 0 au code de la touche pressée afin que cette même touche de soit pas renvoyée pour être affichée (ce qui, pour la touche Enter, causerait une exclamation [sonor tout du moins] de la part de Windows!). Si tu veux voir ce que ça donne sans cette ligne, met la en commentaire (en placant une apostrophe au début).
Diable, est-ce qu'avec toutes ces explications tu as pu avancer ???
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
babyboydu92
Messages postés9Date d'inscriptionmardi 18 octobre 2005StatutMembreDernière intervention12 août 2007 10 janv. 2006 à 19:45
Sa fonctionne, merci !
Et pour une réponse, sa c'est une réponse !
il est vrai que maintenant que tu m'à tout expliqué c'est très facile mais il fallait quant même le savoir !
Bonne soirée A++