Problème de timer Visual Basic
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai voulu faire des contrôles clignotants, qui changent tantôt en jaune, tantôt en jaune clair. J'ai utilisé la boucle, mais c'était nul,
parce que ça freezais l'application.
Alors j'ai utilisé des timers.
Nom des contrôles:
Label: TwLabel
Bouton: TwButton
Timer: Scintille
Voici le code:
Private Sub Scintille_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Scintille.Tick
If Scintille.Interval = 100 Then
TwLabel.ForeColor = Color.LightYellow
TwButton.BackColor = Color.LightYellow
End If
If Scintille.Interval = 800 Then
TwLabel.ForeColor = Color.Yellow
TwButton.BackColor = Color.Yellow
End If
End Sub
Mais il y a un problème:
ça marche, je vois les contrôles jaunes puis jaunes clairs, mais qu'une fois! Je voudrais que ça le fasse tout le temps.
Je vous serait très reconnaissant de m'aider.
J'ai voulu faire des contrôles clignotants, qui changent tantôt en jaune, tantôt en jaune clair. J'ai utilisé la boucle, mais c'était nul,
parce que ça freezais l'application.
Alors j'ai utilisé des timers.
Nom des contrôles:
Label: TwLabel
Bouton: TwButton
Timer: Scintille
Voici le code:
Private Sub Scintille_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Scintille.Tick
If Scintille.Interval = 100 Then
TwLabel.ForeColor = Color.LightYellow
TwButton.BackColor = Color.LightYellow
End If
If Scintille.Interval = 800 Then
TwLabel.ForeColor = Color.Yellow
TwButton.BackColor = Color.Yellow
End If
End Sub
Mais il y a un problème:
ça marche, je vois les contrôles jaunes puis jaunes clairs, mais qu'une fois! Je voudrais que ça le fasse tout le temps.
Je vous serait très reconnaissant de m'aider.
A voir également:
- Problème de timer Visual Basic
- Visual basic - Télécharger - Langages
- Visual basic editor - Télécharger - Langages
- Visual petanque - Télécharger - Sport
- Microsoft 365 basic - Accueil - Microsoft Office
- Visual c++ 2019 - Guide
2 réponses
Bonjour
scintille.intervalle te donne la durée de ton timer, pas là où il en est rendu. Si tu as mis sa valeur à 800, ton premier IF ne sera jamais exécuté
Utilise une variable static pour mémoriser si son bouton est clair ou foncé et inverse la variable à chaque fois
Private Sub Scintille_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Scintille.Tick
Static Clair as boolean
Clair = not clair
if Clair then
TwLabel.ForeColor = Color.LightYellow
TwButton.BackColor = Color.LightYellow
Else
TwLabel.ForeColor = Color.Yellow
TwButton.BackColor = Color.Yellow
End If
End Sub
Si tu veux avoir des périodes différentes, modifie scintille.interval dans chacune des conditions
scintille.intervalle te donne la durée de ton timer, pas là où il en est rendu. Si tu as mis sa valeur à 800, ton premier IF ne sera jamais exécuté
Utilise une variable static pour mémoriser si son bouton est clair ou foncé et inverse la variable à chaque fois
Private Sub Scintille_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Scintille.Tick
Static Clair as boolean
Clair = not clair
if Clair then
TwLabel.ForeColor = Color.LightYellow
TwButton.BackColor = Color.LightYellow
Else
TwLabel.ForeColor = Color.Yellow
TwButton.BackColor = Color.Yellow
End If
End Sub
Si tu veux avoir des périodes différentes, modifie scintille.interval dans chacune des conditions