[Visual Basic] Problème pour faire tourner un chronomètre...

Problème pour faire tourner un chronomètre... [Visual Basic] - Programmation

Marsh Posté le 22-06-2002 à 10:27:26    

Salut,
 
Je suis en train de créer un chronomètre qui doit se déclencher quand on clique sur un bouton et doit s'arreter quand on clique sur un autre... le problème c'est que je n'arrive pas à faier partir mon chrono... Il est coincé à 00:00:00.
 
 
Je cherche donc le code qui permet de partir de faire patirle chrono 00:00:00, je pense que c'est ca:
 
Private Sub Form_Load()
 
Label1.Caption = Format(Time - Time, "00:00:00" )
 
End Sub
 
 
 
Mais je cherche surtout le code qui permet de faire tourner mon chrono... pour pas qu'il ne reste à 00:00:00 mais passe à 00:00:01 puis 00:00:02 etc etc...
Je pense qu'il faut le mettre dans un Timer avec un intervalle de 1000.
Je sais que ce code est trés court.... au max 3 ou 4 lignes mais je le trouve pas... alors si un champion de VB passe par la merci de m'aider :) :) :jap:
 
 
 
Moi je pensais a un code de ce style:
 
Private Sub Timer1_Timer()
 
Dim Duree As String
Duree = Label1.Caption + Format("00:00:01" )
 
End Sub
 
mais ca ne marche pas.... :(
 
:hello:

Reply

Marsh Posté le 22-06-2002 à 10:27:26   

Reply

Marsh Posté le 22-06-2002 à 11:24:58    

je te propose autre chose : utilise l'API  GetTickCount de windows qui mesure le nombre de milliseconde écouler depuis le démaarage de windows.
 

Code :
  1. Declare Function GetTickCount Lib "kernel32" alias "GetTickCount" () As Long
  2. private time1 as long
  3. private sub command1_click()
  4. 'déclenche le chrono
  5. time1=GetTickCount()
  6. end sub
  7. private sub command2_click()
  8. 'arrete le chrono
  9. msgbox ="temps écouler en millisecondes : " &GetTickCount()-time1
  10. end sub


 
c'est juste pour te doner une idée du fonctionnement.
apres si tu veux de que le résultat soit en minutes/secondes par exemples a toi te mettre la logique qui va avec.


Message édité par cerdoc le 22-06-2002 à 11:26:00
Reply

Marsh Posté le 22-06-2002 à 11:37:24    

Ok merci bcp :jap:
Je vais voir ca de plus prés :)
Si qq un a d'autres propositions je suis preneur ! deux techniques valent mieux qu'une :D
 
 
:hello:

Reply

Marsh Posté le 22-06-2002 à 12:17:45    

Bon j'ai pris cette API qui m'a l'air assez intéressante :)
 
Mais je me retrouve avec un résultat en millisecondes, et je voudrais un résultat au format hh:mm:ss, comment faire...
Voila le code qui me permet d'obtenir le résultat:
 
Label1.Caption = GetTickCount() - time1
 
 
Que rajouter de plus pour formater ce résultat ?

Reply

Marsh Posté le 22-06-2002 à 14:53:08    

un bête division euclidienne...

Reply

Marsh Posté le 22-06-2002 à 15:54:25    

->kyle_katarn  
 
Merci de ta réponse :) Mais le problème c'est que je suis dépassé par cette division :D Car j'ai plus fait de VB depuis 3 ans alors je suis un peu à la rue... et en matth je suis à la rue...
Alors si tu pouvais m'en dire un peu plus sur cette division euclidienne ca serait sympa ! Si tu pouvais carrément me l'écrire ca serait encore meiux :D
 
:hello:

Reply

Marsh Posté le 22-06-2002 à 20:08:40    

Webman a écrit a écrit :

->kyle_katarn  
 
Merci de ta réponse :) Mais le problème c'est que je suis dépassé par cette division :D Car j'ai plus fait de VB depuis 3 ans alors je suis un peu à la rue... et en matth je suis à la rue...
Alors si tu pouvais m'en dire un peu plus sur cette division euclidienne ca serait sympa ! Si tu pouvais carrément me l'écrire ca serait encore meiux :D
 
:hello:  




 
pour avoir le quotien de la division, tu utilise '\' et ppour le reste, tu utilise mod
pour avoir l'heure tu fais donc:

Code :
  1. private sub command2_click()
  2. dim h as long 'heures
  3. dim m as long 'minutes
  4. dim s as long 'secondes
  5. dim t as long 'temps total en secondes
  6. t = CLng((time1 - GetTickCount())/1000)
  7. h = t \ 3600
  8. m = (t Mod 3600)\60
  9. s= t Mod 60
  10. label1.caption= h & ":" & m & ":" & "s"
  11. end sub


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 22-06-2002 à 23:13:05    

Merci beaucoup :) :) :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed