La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1260 - CREACIÓN DE CRONÓMETRO
Autor:  Hernán Di Doménico
Tengo un problema: estoy tratando de hacer un cronometro como el de un reloj para un programa que tiene que hacer el cronometraje de una competencia de pedestrismo. Y el problema principal es que utilizando el Control Timer del Visual Basic 5 tengo una gran diferencia con un cronometro de mano; es decir el crono que programe con el VB 5 no funciona a tiempo real, ni siquiera con el tiempo del colck de la CPU.
Alguien me podria informar si hay algún tipo de control OCX o algo por el estilo que me permita realizar un cromometro, que utilice horas, minutos, segundos y centesimas.

  Respuesta:  Atleti
Una posible solución, aunque no se si te servirá, es utilizar el reloj del sistema, en lugar de contar con el control timer. Si en lugar de poner el timer.interval=1000 para ir sumando segundos, lo que puedes hacer es guardar en una variable el tiempo en el que empezaste a contar, y cada vez que actives el evento timer, mostrar la diferencia de hora desde que iniciaste el contador, hasta el momento actual.
Si no me he explicado bien, a ver si te puede servir este ejemplo:

Dim HoraInicio as Date

Private Sub cmdStart_Click()
HoraInicio=Format(Now, "hh:mm:ss")
End Sub

Private Sub tmrReloj_Timer()
HoraFinal=Format(Now - HoraInicio,"hh:mm:ss")
End Sub

Lo he puesto un poco de cabeza, asi que perdonar algun 'fallo' de compilación. Esto lo he utilizado para un mínimo de segundos, si quieres afinar más con centésimas o milésimas, no sé si será válido este ejemplo

Un saludo

  Respuesta:  Gerardo Librera
EL PROBLEMA QUE PUEDES ESTAR TENIENDO ES QUE EL CONTROL TIMER DE VISUALBASIC MANEJA COMO MINIMO 18 MILISEGUNDOS, DE ESA FORMA TENDRIAS QUE SACAR LA CUENTA PORQUE CUANDO LE INDICAS TIMER.VALUE=1000 EN REALIDAD NO ES UN SEGUNDO APARTE EL TIEMPO PUEDE VARIAR DEPENDIENDO DEL SISTEMA OPERATIVO YA QUE SI EFECTUAS OTRA ACCION DESDE WINDOWS Y NO TIENES UNA BUENA P.C EL MISMO QUEDARA FRENADO POR INSUFICIENTES RECURSOS DEL SISTEMA, RECOMPONIENDOSE CUANDO WINDOWS HAYA TERMINADO DE EFECTUAR LA OTRA TAREA.
SI TE SIRVE TE ENVIO UN CONTROL TIMER NUEVO CON EL CUAL SEGUN SU DOCUMENTACION PUEDES TRABAJAR COMO MINIMO A 1 MILISEGUNDO DE "TIEMPO REAL".