que alguien corrija mi codigo por favor

javi
26 de Octubre del 2004
tengo un crono con el siguiente codigo:

Option Explicit
DefLng A-Z
Private Const Precision As Long = 100
Private Declare Function timeGetTime Lib "winmm.dll" () As Long

Private Inicio As Single

Private Sub Form_Load()
On Error Resume Next
'centra el formularioen la pantalla
Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2
Tm.Interval = Precision
Caption = Caption & " - Precisión = " & Precision & " ms"
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Tm.Enabled = False
End Sub

Private Sub opComenzar_Click(Index As Integer)
If Index = 1 Then
Tm.Enabled = False 'Apaga el cronómetro
tm_Timer 'Muestra el valor final
Else
Inicio = timeGetTime 'Toma el valor inicial del tiempo
Tm.Enabled = True 'Enciende el cronómetro
End If
End Sub

Private Sub tm_Timer()
On Error Resume Next
Dim d As Single, ms As Long, s As Long, m As Long, h As Long
d = timeGetTime - Inicio 'Calcula la diferencia de milisegundos desde que se inició el cronómetro hasta ahora
s = d 1000 '1 segundo son 1000 milisegundos
ms = d Mod 1000 'El resto de la división son los milisegundos que sobran
If s > 59 Then
m = s 60 '1 minuto tiene 60 segundos
s = s Mod 60 'El resto de la división son los segundos que sobran
End If
If m > 59 Then
h = m 60 '1 hora tienen 60 minutos
m = m Mod 60 'El resto son los minutos que sobran
End If
'Muestra el contenido en la etiqueta con el formato correcto
LblTime.Caption = Format$(h, "00") & ":" & Format$(m, "00") & ":" & Format$(s, "00") & ":" & Format$(ms, "000")
'Si se congela el proceso, activar DoEvents
'DoEvents
End Sub

al iniciar el formulario aparece funcionando.
y me gustaria poder grabar los los tiempos en un datagrid para despues trabajar con ellos. me podeis ayudar.