Problème avec un timer et un for dans vb6 [Résolu]

Signaler
Messages postés
5
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
14 juin 2011
-
Messages postés
5
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
14 juin 2011
-
Bonjour,

J'ai fait un petit prog. pour envoyer des trams de 8 bits en rentrant les valeurs dans une textbox et en pouvant choisir un timer en milliseconde.

J'ai un petit problème, les infos s'affiche correctement dans l'écran débug avec le timer voulu. Mais pas dans le label voulu, sauf la dernière valeur du tableau, qui elle s'affiche bien à la fin.
Les valeur intermédiaire ne s'affiche pas, même avec une valeur de timer de 1 seconde.

J'ai fortement simplifier le code pour que vous en ayez une meilleur compréhension. Et aussi pour voir si ce n'était pas le traitement de la donnée qui était trop lourde, mais ca ne change rien.

Je pense que le problème vient du for, mais le debug.print fonctionne et même avec un msgbox ca fonctionne, donc je ne vois vraiment pas le problème.

j'ai aussi essayé en passant par une variable tampon en integer mais ca ne change rien.

Voici le code:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'==================================================================
' ####Tram du 1er octet####

Private Sub Command3_Click()
Dim Tableau() As String
Dim TamponVar1 As String
Dim Delai1 As Integer
Dim i As Integer

If IsNumeric(Text5.Text) Then
    Delai1 = Text5.Text
Else
    MsgBox "Vous devez entre une valeure numérique pour le delai du 1er octet"
End If

TamponVar1 = Replace$(Text3.Text, " ", "")
If IsNumeric(TamponVar1) Then
    'découpe la chaine en fonction des espaces " "
    'le résultat de la fonction Split est stocké dans un tableau
    Tableau = Split(Text3.Text, " ")
    
    '###############Code qui pose Problème #################
    'boucle sur le tableau pour visualiser le résultat
    For i = 0 To UBound(Tableau)
        Sleep (Delai1)
        'MsgBox (Tableau(i))
        Debug.Print Tableau(i)
        Label6.Caption = "Valeur du 1er Octet : " + Tableau(i)
    Next i
    '###############Code qui pose Problème #################

Else
    MsgBox "Vous devez entrer une valeur numérique séparé d'un espace"
End If

End Sub

'==================================================================



Je vous remercie d'avance pour l'attention que vous porterez à mon post, en espérant que ca aidera les futur programmeur en herbe qui auront le même problème. ;)

A bientôt.

2 réponses

Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
bonjour
mets un DoEvents dans ta boucle pour laisser à Windows le temps de rafraichir l'affichage

si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
5
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
14 juin 2011

Bonjour,


Merci pour la réponse super rapide, j'ai tester et c'est impeccable même avec mon code complet.

Encore un grand merci.

A bientôt