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

Soyez le premier à donner votre avis sur cette source.

Vue 16 608 fois - Téléchargée 948 fois

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

Ajouter un commentaire Commentaires
Messages postés
71
Date d'inscription
dimanche 12 octobre 2003
Statut
Membre
Dernière intervention
9 janvier 2009

Rukialilly> Il te suffirait de mettre des textbox (une pour les heures, l'autre pour les minutes et la dernière pour les secondes), puis une fois qu'on lance le compte à rebours, il suffit d'attribuer pour ces unités respectives les valeurs des textbox qui leur correspondent.

Ou alors tu te sers de Command$ et t'envoies en paramètre les valeurs lors du lancement de l'application.
Messages postés
10
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
13 juin 2008

Salut j'aimerait savoir si il est possible que l'utilisateur puisse modifier l'heure du compte à rebours lui même, au lieu de le changer dans le programme.J'ai entendu parler du maskedbox, mais j'arrive pas bien a décrémenter, ça plante au bout d'un moment.Merçi d'avance
Messages postés
1
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
2 septembre 2005

salut! moi je voudrai savoir si on peut que a la fin du compte a rebour on execute un fichier ou une page web??? sa m'interesserai pour mon site.


merci bien
Messages postés
91
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
23 mai 2005

c'est peux etre plus simple avec les timer mais une accumulation de timer fais planter le pc en utilisant les ressources a 100% ! ! ! alors plus simple oui mais . . .
Messages postés
71
Date d'inscription
dimanche 12 octobre 2003
Statut
Membre
Dernière intervention
9 janvier 2009

oué, mais j'aime pas trop les api, je me suis pas familiarisé avec...

j'aurais aussi pu faire avec do et loop until...

mais bon, je trouvais que c'était plus simple avec les timers...

@+
Afficher les 6 commentaires

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.