Accueil > > > COMPTE À REBOURS INTÉGRÉ DANS UN MODULE !!
COMPTE À REBOURS INTÉGRÉ DANS UN MODULE !!
Information sur la source
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
- '#####################
- '#####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
'#####################
'#####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 ;)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
timer [ par neuil ]
salut je souhaite reafficher ma fenetre lorsque je clique sur une autre application(par exemple un autre logiciel qui n'a rien a voir avec VB)!que doi
URGENT!!timer et affichage [ par neuil ]
salut je souhaite reafficher ma fenetre lorsque je clique sur une autre application(par exemple un autre logiciel qui n'a rien a voir avec VB)!que doi
timer [ par cat ]
je suis a la recherche d'une procedure permettant de definir l'intervalle d'un timer comme le temps necessaire à l'execution d'une procedure!je voudra
Timer [ par tony ]
Private Sub form_load()timer.Interval = 1000timer.Enabled = trueEnd SubPrivate Timer_Time()Label1.caption = timeEnd Sub'Malheureusement avec cette mét
renseignement sur le TIMER [ par fransoze ]
Bonjour à tousJe suis nouveau sur ce site et je le trouve superbe.Ma question est:Comment fonctionne le TIMER dans une application ?Je vous remercie d
Pb timer [ par juju ]
Les timers sont limités à tout au plus 1 minute (environ), existe t'il une astuce pour gérer le déclenchement d'un évenement toutes les 2 heures?Merci
Mouvement d'un picture box sans timer [ par chookoo ]
salut, jvoudrais savoir comment on fait la même chose que wite18 a demander mais sans timer !Merci bien !Chookoo
GetTickCount-Compte à rebours [ par Big Blue ]
Je souhaite réaliser un petit programme utilisant la fonction GetTickCount pour faire un compte à rebours. Je ne sais pas comment utiliser cette fonct
timer plus rapide [ par arnaud ]
comment fair pour qu l'interval d'un timer soit moin de 1 (pour une carte faite maison)merci arnaud
Des secondes trop longues! [ par bidules ]
je ne sais pas si c'est mon ordi qui fait ca mais quand je regle l'interval d'1 timer sur 1000ms et que j'incremente une variable de 1 toute les secon
|
Derniers Blogs
TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|