VB 6 (fonction replace)

Résolu
sommaille Messages postés 69 Statut Membre -  
sommaille Messages postés 69 Statut Membre -
Bonjour,

J'ai un petit problème, j'ai ce code :
Text1.Text = Replace(Text1.Text, "a", "z")
Text1.Text = Replace(Text1.Text, "b", "y")
Text1.Text = Replace(Text1.Text, "c", "x")
Text1.Text = Replace(Text1.Text, "d", "w")
Text1.Text = Replace(Text1.Text, "e", "v")
Text1.Text = Replace(Text1.Text, "f", "u")
Text1.Text = Replace(Text1.Text, "g", "t")
Text1.Text = Replace(Text1.Text, "h", "s")
Text1.Text = Replace(Text1.Text, "i", "r")
Text1.Text = Replace(Text1.Text, "j", "q")
Text1.Text = Replace(Text1.Text, "k", "p")
Text1.Text = Replace(Text1.Text, "l", "o")
Text1.Text = Replace(Text1.Text, "m", "n")


Qui dit que a se remplace par z dans le text1, etc ....
Sa marche pas tellement (sa s'actualise pas, je ne sais pas pourquoi), mais surtout, quand sa écrit, quand on écrit, sa écrit vers la gauche, c'est a dire le trait ce remet à gauche.
Savez vous comment le mettre a droite et comment actualiser le remplacement ?

Merci !

5 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Tu crois pas que ce serait plus simple de modifier la configuration de ton clavier ?
    A+
    0
  2. sommaille Messages postés 69 Statut Membre
     
    c'est pour un logiciel d'alphabet codé =), donc non loul
    0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    OK, mais ce n'est pas aussi simple que tu ne le pense, il est impossible de modifier le textBox avant que tout les évènements aient étés passés.
    Ont peu contourner cette difficulté avec un timer.
    Pour le test, ouvre un nouveau projet
    Un textBox et un timer
    et le code..
    Dim TB
    
    Private Sub Form_Load()
        TB = Array("y", "x", "w", "v", "u", "t", "s", "r", "q", "p", "o", "n")
        Timer1.Interval = 50
        Timer1.Enabled = True
    End Sub
    
    Private Sub Timer1_Timer()
    Dim i As Integer, e As Integer
    Dim C As Integer, S As String
        C = Text1.SelStart
        S = Text1.Text
        For e = 1 To Len(S)
            For i = 97 To 108
                If Mid(S, e, 1) = Chr(i) Then
                    Mid(S, e, 1) = TB(i - 97)
                    Exit For
                End If
            Next
        Next
        Text1.Text = S
        Text1.SelStart = C
        Text1.SetFocus
    End Sub
    0
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Pour éviter que ça tourne pour rien tu peu ajouter ces deux procédures.
    Private Sub Text1_GotFocus()
        Timer1.Enabled = True
    End Sub
    
    Private Sub Text1_LostFocus()
        Timer1.Enabled = False
    End Sub
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sommaille Messages postés 69 Statut Membre
     
    ok merci bcp lermite =)
    0