Compte à rebours intégré dans un module !!

Description

Ben voilà, j'ai eu l'idée de faire un compte à rebours...

Et j'ai fais mieux : vous pourrez l'intégrer dans votre programme sans difficulté :
suffit de placer un label et 2 timers sur la form, de placer le code contenu dans la form dans la vôtre, et d'ajouter le module dans votre programme !

tout est clairement détaillé (du moins je le pense...)

Source / Exemple :


'#####################
'#####Code de la FORM#####
'#####################

'Dans ce programme, je vais seulement faire appel à un module.
'Il faut juste mettre un label et 2 timers sur la form, et
'configurez ensuite selon vos préférences...

Private Sub Form_Load()
'on va appeler les différentes fonctions :
'la fonction loading est la suivante : loading(nom_du_label dans le quel il faut
'afficher le compte à rebours, nombre_d'_heures à définir, nombre_de_minutes à
'définir, nombre_de_secondes à définir)
'Ici, le compte à rebours commence à 00:02:30 (soit 0 heure, 2 minutes et 30
'secondes)
Loading Label1, "0", "2", "30"
'la fonction active est la suivante : active(nom_du_1er_timer à activer, nom_de_2eme_
'timer à activer, intervalle_du_1er_timer à définir, intervalle_du_2eme_timer
'à définir)
Active Timer1, Timer2, 1, 1000
End Sub

Private Sub Timer1_Timer()
'la fonction defil est la suivante : defil(nom_du_label dans le quel il faut
'afficher le compte à rebours, nom_du_1er_timer, nom_du_2eme_timer, message à
'afficher, type_de_message (vbOK, vbOkCancel, etc...), titre_du_message)
Defil Label1, Timer1, Timer2, "BOOM!! Le compte à rebours est écoulé !", vbOKOnly, "Compte à Rebours"
End Sub

Private Sub Timer2_Timer()
'la fonction initialise est la suivante : initialise(nom_du_2eme_timer)
Initialise Timer2
End Sub

'#####################
'#####Code du module######
'#####################

'Voici le module qui gère tout :
'On déclare le nombre de secondes, de minutes et d'heures
Dim sec As Integer
Dim min As Integer
Dim heure As Integer

Public Function Defil(nom_du_label As Label, nom_du_timer1 As Timer, nom_du_timer2 As Timer, message As String, type_de_message As String, titre_du_message As String)
'Si le nombre de secondes est inférieur à 10,
If sec < 10 Then
'et si le nombre de minutes aussi,
If min < 10 Then
'alors on met le label qui doit contenir le compte à rebours au format :
'"0H:0M:0S"
nom_du_label.Caption = Format(nom_du_label, "0" & heure & ":" & "0" & min & ":" & "0" & sec)
Else
'sinon, si le nombre de minutes est supérieur à 10,
'on met le label qui doit contenir le compte à rebours au format :
'"0H:MM:0S"
nom_du_label.Caption = Format(nom_du_label, "0" & heure & ":" & min & ":" & "0" & sec)
End If
'On met fin à cette fonction.
'Sinon, si le nombre de secondes est supérieur à 10,
Else
'et si le nombre de minutes est inférieur à 10,
If min < 10 Then
'on met le label qui doit contenir le compte à rebours au format :
'"0H:0M:SS"
nom_du_label.Caption = Format(nom_du_label, "0" & heure & ":" & "0" & min & ":" & sec)
Else
'sinon, si le nombre de minutes est supérieur à 10 (le nombre de secondes aussi),
'on met le label qui doit contenir le compte à rebours au format :
'"0H:MM:SS"
nom_du_label.Caption = Format(nom_du_label, "0" & heure & ":" & min & ":" & sec)
End If
End If
'On met fin aux fonctions.
'Si le label qui doit contenir le compte à rebours atteint 0 (dans tous les sens;
'0 heure, 0 minute et 0 seconde),
If nom_du_label.Caption = "00:00:00" Then
'Alors on lance un message d'erreur définit dans le code de la form (fonction
'defil) :
'Au format : message, type, titre
MsgBox message, type_de_message, titre_du_message
'Puis on désactive les timers, pour ne pas que le compte à rebours continue...
nom_du_timer1.Enabled = False
nom_du_timer2.Enabled = False
End If
'et on met fin à la fonction
End Function

Public Function Initialise(nom_du_timer As Timer)
'On vérifie régulièrement les valeurs du compte à rebours :
'si le nombre de secondes atteint 0,
If sec = "00" Then
'et si le nombre d'heures est supérieur à 0, et si le nombre de minutes
'est égal à 0,
If heure > 0 And min = "00" Then
'alors le nombre de secondes est 59, ainsi que le nombre de minutes,
sec = 59
min = 59
'et le nombre d'heures descend de 1
heure = heure - 1
Else
'sinon, si le nombre d'heure est égal à 0,
'alors le nombre de secondes est égal à 59, et le nombre de minutes chute de 1
sec = 59
min = min - 1
End If
'on met fin à la fonction
'et sinon, si le nombre de secondes n'est pas égal à 0,
Else
'alors il chute de 1
sec = sec - 1
End If
'on met fin à la fonction
'donc, ici, tout est géré :
'si le nombre de secondes est de 1, alors il égale 0 (car sec=sec-1)
'et si sec=0, alors sec=59, et le nombre de minutes chute de 1 et ainsi de suite
'c'est aussi géré pour les heures.
'et si heure=0, min=0 et sec=0, on reviens au 1er timer, qui contient la
'fonction : If nom_du_label.Caption = "00:00:00" Then...
End Function

Public Function Loading(nom_du_label As Label, heure_definie As Integer, min_definie As Integer, sec_definie As Integer)
'On détermine l'heure par défaut à partir du code de la form
heure = heure_definie
'Puis on détermine les minutes par défaut
min = min_definie
'Et on détermine enfin les secondes par défaut
sec = sec_definie
'Puis on rempli les valeurs par défaut dans le label qui
'doit contenir le compte à rebours, pour déterminer à partir de combien il part
nom_du_label = heure & ":" & min & ":" & sec
End Function

Public Function Active(nom_du_timer1 As Timer, nom_du_timer2 As Timer, interval_timer1 As Integer, interval_timer2 As Integer)
'On active les timers en indiquant leur intervalle, à partir du code de la form
'Pour le timer1
nom_du_timer1.Interval = interval_timer1
nom_du_timer1.Enabled = True
'et pour le timer2
nom_du_timer2.Interval = interval_timer2
nom_du_timer2.Enabled = True
End Function

Conclusion :


je trouve ça vraiment pas mal, mais j'attend bien sûr votre point de vue...

ce code est là pour aider (et peut-être initier) toute personne dans le maniement des modules, car, il faut bien le dire, ce programme ne fonctionne que grâce au module...

@+, et bonne prog ;)

Codes Sources

A voir également

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.