DIFERENCA DE TEMPO CRONOMETRO

DJOU 30/09/2012 23:37:17
#410899
Pessoal,
Estou fazendo um cronômetro regressivo com a função timegettime (inclusive peguei aqui a base http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=8516)
São 3 objetos timer (1 para tempo total, 1 para intervalo e 1 para regressivo). Enquanto o tempo total decresce de 3 minutos e 50 segundos, o regressivo e o intervalo se alternam em 20 segundos e 10 segundos respectivamente. Mas o que acontece que ao final de 3:50, os dois timers estão com uma diferença de 2 segundos para o tempo total...
Eu játentei fazer isso com um timer sem usar a função timegettime, só que ele ficava muito lento em relação a um cronômetro.
Alguém poderia me ajudar??

Private Sub IntervaloT_Timer()
Dim Tempo As Long

TempoFinal = timeGetTime
pppp = INTERVALO * 100
ppp = pppp * 10
Tempo = TempoFinal - (TempoInicial + ppp)

Milis = Right(Tempo, 3)

Segun = Tempo \ 1000
If Segun >= 60 Or Segun <= -60 Then
Minut = Segun \ 60
Segun = Segun Mod 60
Else
Minut = [Ô]00[Ô]
End If

If Label1.Caption = [Ô]00:00[Ô] And Milis <= 5 Then
IntervaloT.Enabled = False
Label4.Caption = SERIE_ATUAL
Select Case TIPO_RELOGIO
Case Is = [Ô]TABATA[Ô]
TabataT.Enabled = True
TempoInicial = timeGetTime
DE_QUEM_A_VEZ = [Ô]TABATA[Ô]
Label1.Caption = [Ô]00:20[Ô]
End Select
PintarRelogio
Exit Sub
End If

If Minut >= 60 Then
Hora = Minut \ 60
Minut = Minut Mod 60
Else
Hora = [Ô]00[Ô]
End If


If Left(Segun, 1) = [Ô]-[Ô] Then
rel = Format(Mid(Minut, 2, (Len(Minut))), [Ô]00[Ô]) & [Ô]:[Ô] & Format(Mid(Segun, 2, (Len(Segun))), [Ô]00[Ô])
Else
rel = Format(Minut, [Ô]00[Ô]) & [Ô]:[Ô] & Format(Segun, [Ô]00[Ô])
End If

Label1.Caption = rel
End Sub

Private Sub TabataT_Timer()
Dim Tempo As Long

TempoFinal = timeGetTime
pppp = REGRESSIVO * 100
ppp = pppp * 10
Tempo = TempoFinal - (TempoInicial + ppp)

Milis = Right(Tempo, 3)

Segun = Tempo \ 1000
If Segun >= 60 Or Segun <= -60 Then
Minut = Segun \ 60
Segun = Segun Mod 60
Else
Minut = [Ô]00[Ô]
End If
Debug.Print Tempo & [Ô] - tempo inicial: [Ô] & TempoInicial & [Ô] - tempofinal: [Ô] & TempoFinal
If Label1.Caption = [Ô]00:00[Ô] And Milis <= 5 Then
If SERIE_ATUAL = SERIES Then
TabataT.Enabled = False
Else
Label1.Caption = [Ô]00:10[Ô]
TabataT.Enabled = False
IntervaloT.Enabled = True
DE_QUEM_A_VEZ = [Ô]INTERVALO[Ô]
PintarRelogio
SERIE_ATUAL = SERIE_ATUAL + 1
TempoInicial = timeGetTime
Exit Sub
End If
End If

If Minut >= 60 Then
Hora = Minut \ 60
Minut = Minut Mod 60
Else
Hora = [Ô]00[Ô]
End If

If Left(Segun, 1) = [Ô]-[Ô] Then
rel = Format(Mid(Minut, 2, (Len(Minut))), [Ô]00[Ô]) & [Ô]:[Ô] & Format(Mid(Segun, 2, (Len(Segun))), [Ô]00[Ô])
Else
rel = Format(Minut, [Ô]00[Ô]) & [Ô]:[Ô] & Format(Segun, [Ô]00[Ô])
End If

Label1.Caption = rel [ô]Format(Minut, [Ô]00[Ô]) & [Ô]:[Ô] & Format(Segun, [Ô]00[Ô]) & [Ô]:[Ô] & Format(Milis, [Ô]000[Ô]) [ô](Mid(segun, 2, (Len(segun))), [Ô]00[Ô]) [ô]& [Ô]:[Ô] & Format(Milis, [Ô]000[Ô])
Label2.Caption = Milis

End Sub

Private Sub TempoTotalT_Timer()
Dim Tempo As Long

TempoFinal = timeGetTime
pppp = TEMPO_TOTAL * 100
ppp = pppp * 10
Tempo = TempoFinal - (TempoTotalInicial + ppp)

Milis = Right(Tempo, 3)

Segun = Tempo \ 1000
If Segun >= 60 Or Segun <= -60 Then
Minut = Segun \ 60
Segun = Segun Mod 60
Else
Minut = [Ô]00[Ô]
End If

If Label3.Caption = [Ô]00:00[Ô] Then TempoTotalT.Enabled = False

If Minut >= 60 Then
Hora = Minut \ 60
Minut = Minut Mod 60
Else
Hora = [Ô]00[Ô]
End If

If Left(Segun, 1) = [Ô]-[Ô] Then
rel = Format(Mid(Minut, 2, (Len(Minut))), [Ô]00[Ô]) & [Ô]:[Ô] & Format(Mid(Segun, 2, (Len(Segun))), [Ô]00[Ô])
Else
rel = Format(Mid(Minut, 2, (Len(Minut))), [Ô]00[Ô]) & [Ô]:[Ô] & Format(Segun, [Ô]00[Ô])
End If

Label3.Caption = rel [ô]Format(Minut, [Ô]00[Ô]) & [Ô]:[Ô] & Format(Segun, [Ô]00[Ô]) & [Ô]:[Ô] & Format(Milis, [Ô]000[Ô]) [ô](Mid(segun, 2, (Len(segun))), [Ô]00[Ô]) [ô]& [Ô]:[Ô] & Format(Milis, [Ô]000[Ô])

End Sub
DJOU 02/10/2012 11:16:51
#411024
Tentei ainda novamente com o timer com o interval em 1000 e ainda não deu certo!
Alguém me dá uma luz??
DJOU 02/10/2012 23:27:46
#411101
Alguém me d[ô]uma luz??
Tópico encerrado , respostas não são mais permitidas