Timer capricieux...

unguest_online 3 Messages postés dimanche 11 février 2018Date d'inscription 12 février 2018 Dernière intervention - 11 févr. 2018 à 19:42 - Dernière réponse : Whismeril 11017 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 13 février 2018 Dernière intervention
- 12 févr. 2018 à 21:48
Bonsoir (ou bonjour c'est selon...),

Après insertion d'un Timer dans ma fenêtre Design, je voudrais faire en sorte que :

Timer1.Interval = TrackBar1.Value

Le problème, c'est que ce code ne marche pas, il y aurait eu une erreur avec la valeur 0, pourtant impossible...
Je vous laisse le code source en dessous, merci d'avance à tous ceux qui prendront le temps de m'aider ;)

 Public Class Form

    Private Sub TrackBar_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar.Scroll
        If TrackBar.Value = 0 Or 1 Then
            TrackBar.Value = 1
            Timer1.Interval = 1
        End If
        Timer1.Interval = TrackBar.Value / 2
        Label3.Text = TrackBar.Value & " ms"
    End Sub

    Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
        TextBox1.Clear()
        TextBox1.Focus()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        If Label5.Visible = True Then
            Label5.Visible = False
        Else
            Label5.Visible = True
        End If

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Timer1.Start()
    End Sub
End Class 
Afficher la suite 

5 réponses

Répondre au sujet
NHenry 14055 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 11 février 2018 Dernière intervention - 11 févr. 2018 à 20:08
+1
Utile
En VB.NET pensez à activer "Option Explicit" et "Option Strict"

If TrackBar.Value = 0 Or 1 Then

Si TrackBar.Value = 0 OU VRAI Alors
C'est ce que tu as écris.

Et si Interval vaut 0, cela désactive juste le Timer, pas d'erreur.
Commenter la réponse de NHenry
Whismeril 11017 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 13 février 2018 Dernière intervention - 11 févr. 2018 à 20:48
+1
Utile
1
Bonsoir
je voudrais faire en sorte que :

Timer1.Interval = TrackBar1.Value



Mais dans ton code, quand ça plante.
Timer1.Interval = TrackBar.Value / 2

Je parie (car tu n’as pas précisé ce que vaut TrackBar.Value à ce moment-là) je parie donc, que TrackBar.Value vaut 1.
1/2 = 0.5 casté en Integer (Interval est souvent un Integer selon le type de timer) ça fait 0.

Si mon pari est juste, alors ceci corrigera ton problème.
If TrackBar.Value = 0 Or 1 Then
            TrackBar.Value = 1
            Timer1.Interval = 1
        Else
        Timer1.Interval = TrackBar.Value / 2
End IF

Whismeril 11017 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 13 février 2018 Dernière intervention - 12 févr. 2018 à 07:50
Hier soir je n’avais pas intégré la remarque (fort judicieuse) de NHenry.
If TrackBar.Value = 0 Or  TrackBar.Value = 1 Then
            TrackBar.Value = 1
            Timer1.Interval = 1
        Else
        Timer1.Interval = TrackBar.Value / 2
End IF

Ou plus simplement
If TrackBar.Value < 2 Then
            TrackBar.Value = 1
            Timer1.Interval = 1
        Else
        Timer1.Interval = TrackBar.Value / 2
End IF
Commenter la réponse de Whismeril
unguest_online 3 Messages postés dimanche 11 février 2018Date d'inscription 12 février 2018 Dernière intervention - 12 févr. 2018 à 21:12
0
Utile
OK merci beaucoup pour votre aide je n'avais pas pensé au fait que le
Timer1.Value
était en Integer... ce qui évidemment pose quelques soucis.
Commenter la réponse de unguest_online
Whismeril 11017 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 13 février 2018 Dernière intervention - 12 févr. 2018 à 21:48
0
Utile
Si cela te convient, pense à marquer le sujet résolu.
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#marquer-un-sujet-resolu

Ps: c’est trakbar.value et timer1.interval
Ps2: selon le type de timer, interval est parfois un timespan
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.