Partage
  • Partager sur Facebook
  • Partager sur Twitter

banderole lumineuse et timer

Sujet résolu
    3 janvier 2020 à 10:08:02

    Bonjour,

    Je suis le tuto apprenez à programmer en VB.NET.

    Arriver au chapitre "les timers", TP banderole lumineuse (https://openclassrooms.com/fr/courses/993975-apprenez-a-programmer-en-vb-net/990779-les-timers)

    je ne comprend pas le fonctionnement de TIM_TIM_Tick du code suivant:

    Public Class Form1
        Private Sub TIM_TIM_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TIM_TIM.Tick
            Dim Tourne As Boolean = True
            Dim Bouton As Integer = 0
    
            'Rassemble tous les boutons radio dans un tableau
            Dim RB(9) As RadioButton
            RB(0) = Me.RB_1
            RB(1) = Me.RB_2
            RB(2) = Me.RB_3
            RB(3) = Me.RB_4
            RB(4) = Me.RB_5
            RB(5) = Me.RB_6
            RB(6) = Me.RB_7
            RB(7) = Me.RB_8
            RB(8) = Me.RB_9
            RB(9) = Me.RB_10
    
            While Tourne
                'Si on est arrivé au bout du tableau, on sort de cette boucle
                If Bouton = 10 Then
                    Tourne = False
                Else
                    'Si le bouton actuellement parcouru est activé
                    If RB(Bouton).Checked Then
                        'Et si ce n'est pas le dernier
                        If RB(Bouton) IsNot RB(9) Then
                            'on active celui d’après et on sort de la boucle
                            RB(Bouton + 1).Checked = True
                            Tourne = False
                        Else
                            'Sinon on reprend au premier
                            Me.RB_1.Checked = True
                        End If
                    End If
                    'On incrémente le compteur
                    Bouton = Bouton + 1
                End If
            End While
        End Sub
    
        Private Sub BT_PLAY_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_PLAY.Click
            Me.TIM_TIM.Enabled = True
            Me.TIM_TIM.Interval = 501 - Me.TKB_VIT.Value * 50
        End Sub
    
        Private Sub BT_STOP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_STOP.Click
            Me.TIM_TIM.Enabled = False
        End Sub
    
        Private Sub TKB_VIT_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TKB_VIT.Scroll
            Me.TIM_TIM.Interval = 501 - Me.TKB_VIT.Value * 50
        End Sub
    End Class

    Je pensai (à tort étant donné que le code marche) que la méthode TIM_TIM_Tick était lancée à chaque intervalle de temps définit dans les propriétés du timer (ref:https://docs.microsoft.com/fr-fr/dotnet/framework/winforms/controls/run-procedures-at-set-intervals-with-wf-timer-component)

    Du coup la boucle "while tourne" devrait s’exécuter d'un coup et la variable bouton redevenir égale à zéro à chaque intervalle de temps, pourquoi ce n'est pas le cas?

    • Partager sur Facebook
    • Partager sur Twitter
      4 janvier 2020 à 17:36:00

      Regardez plus attentivement la ligne 30. ;)
      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

      banderole lumineuse et timer

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown