Temporisation

PENSSSIUMDK59 Messages postés 10 Date d'inscription vendredi 21 mai 2004 Statut Membre Dernière intervention 6 octobre 2004 - 28 juin 2004 à 09:57
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 - 28 juin 2004 à 12:37
bonjour a tous !!

voila j'ai un petit prog qui tient sur 5 forms vb6.
et je voudrais qu il y a une temporisation qui se lance lorsque j exécute le programme et qui affiche le temps qui s'écoule ( 00:00 à 59:59) et qui s'affiche sur tts les forms

j ai essayer avec le timer mais j arrive pas a avoir quelque chose decorrect

si vous pouvais m aider ca serait coool


PEN$$$$IUM de St pol :-)

11 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 juin 2004 à 10:13
pour faire une pause dans ton programme il existe une API Windows qui le fait trés bien :

' A mettre dans un Module
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Sub Pause(ByVal mseconds As Single) ' Pause(5000) (Pause de 5 sec)

Call Sleep(mseconds)

End Sub

Ensuite dans n'importe qu'elle forme tu appel ta pause comme ça :

Pause (1000)' il y aura une pause d' 1 Seconde

It@li@
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 juin 2004 à 10:15
POur ton temps ecoulé c koi les unites : MM : SS ??

It@li@
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 juin 2004 à 10:26
Salut PENSSSIUMDK59,

Evite la fonction Sleep qui bloque ton programme pendant le temps voulue : plus aucune instruction ne se fait après l'appel à cette fonction, et je ne pense pas que c'est ce que tu veux.

Le timer permet de faire ce que tu veux : tu règle un intervalle, à 100 ms par exemple, puis dans l'événement Timer, tu lui fait afficher la différence entre l'heure actuelle et une heure de référence.

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 juin 2004 à 10:27
Pour ton Affichage du temps
Utiles un timer d'Intervalle 1000
et dans ton code :

Dim Seconde As Integer
Dim Minute As Integer

Private Sub Timer1_Timer()

If Seconde = 60 Then
Minute = Minute + 1
Seconde = 0
End If
Heure = Format(Minute, "00") & ":" & Format(Seconde, "00")
Seconde = Seconde + 1
Label1 = Heure

End Sub

a toi de voir aprés je te donne un debut

It@li@
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PENSSSIUMDK59 Messages postés 10 Date d'inscription vendredi 21 mai 2004 Statut Membre Dernière intervention 6 octobre 2004
28 juin 2004 à 11:50
merci italia c exactement ca que je voulais !!

Dim Seconde As Integer
Dim Minute As Integer

Private Sub Timer1_Timer()

If Seconde = 60 Then
Minute = Minute + 1
Seconde = 0
End If
Heure = Format(Minute, "00") & ":" & Format(Seconde, "00")
Seconde = Seconde + 1
Label1 = Heure

End Sub

Mais seulement je voudrais l'afficher sur plusieurs form !

Je m'explique :

lorsque je lance le prog ca m affiche la form1 et le temps écoulé est affiché
et ensuite je lance la form2 et je voudrais continuer a afficher le temps écoulé de tout a l heure et ainsi de suite sur ttes les forms de mon prog

faudrait enregistrer le temps écoulé dans une variable et relancé la tempo sur la form suivante mais ca je vois pas comment faire ???


PEN$$$$IUM de St pol :-)
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 juin 2004 à 11:57
Utilises alors un Module ou tu Mettras tes Variables en Public :

Public Seconde As Integer
Public Minute As Integer

Il te faut un Timer avec Intervalle=1000 sans chacune de tes Forms...et le code que je t'es mis..

ça devrait être OK..

Par contre attention quand le nb de Minute depasse les 59 je n'est pas gérer les Heures !!

It@li@
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 juin 2004 à 12:03
Le fait de rendre les variable publiques permet de récupèrer leur valeur dans chaque feuilles, certes, mais ne permet par de mettre à jour les labels comme il faut ! Alors au lieu d'inclure un timer dans chaque feuille, ce qui est loin d'être optimisé, je te conseille plutôt de mettre à jour tes labels à partir de l'événement Timer de ton Timer :

Private Sub Timer1_Timer()

If Seconde = 60 Then
Minute = Minute + 1
Seconde = 0
End If
Heure = Format(Minute, "00") & ":" & Format(Seconde, "00")
Seconde = Seconde + 1
Label1.Caption = Heure
Form2.Label1.Caption = Heure
Form3.Label1.Caption = Heure
'etc.

End Sub

De plus, ne t'attend pas à avoir une heure qui se raffraichit en même temps que l'horloge système !

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 juin 2004 à 12:17
Oui mais avec cette Methode :

Form2.Label1.Caption = Heure
Form3.Label1.Caption = Heure
....

tu forces l' Appli à charger toutes les feuilles ? NOn ? même celle qui n'était pas lancer avant et cela toutes les seconde ??

Non ..a ton avis DARKSIDIOUS ? alor s que dans ma proposition le timer vient chercher les minute et secondes stocké dans des variables ?

It@li@
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 juin 2004 à 12:23
Oui, le timer vient chercher les minutes et secondes, mais ca oblige, d'un, à utiliser 2 variables globales, ce qui n'est pas treès rigoureux, surtout pour ce genre de manip (on peux largement s'en passer !), et de deux : ca oblige de mettre un timer sur chaque feuille, ce qui donne au final une occupation processeur dont on peux se passer !

Ma méthode peut être optimisé en testant, pas exemple, si chaque feuille est visible, ainsi, pas besoin de les charger en mémoire, et on soulage l'occupation processeur !

Beaucoup de monde trouve le VB lent, mais si on n'optimise pas ses méthodes, c'est sur qu'il restera lent ! (sans vouloir te vexer bien entendu ;-)

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
PENSSSIUMDK59 Messages postés 10 Date d'inscription vendredi 21 mai 2004 Statut Membre Dernière intervention 6 octobre 2004
28 juin 2004 à 12:25
je vous remerci tous les deux ! Italia et DarK Sidious

C vraiment sympa de votre part !!

merci

a +++ pour une autre question ;-)
ou peut etre réponse

PEN$$$$IUM de St pol :-)
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 juin 2004 à 12:37
Merci DarK Sidious pour ta remarque qui est VRAIE

@+

It@li@
0
Rejoignez-nous