DIFERENCA DE TEMPO CRONOMETRO
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
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
Tentei ainda novamente com o timer com o interval em 1000 e ainda não deu certo!
Alguém me dá uma luz??
Alguém me dá uma luz??
Alguém me d[ô]uma luz??
Tópico encerrado , respostas não são mais permitidas