border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

  #1 (permalink)  
Antiguo 20-01-2007, 23:42:54
Buena Participación en el Foro
 
Registrado: ago 2006
Posts: 96
Zion_Tm Valoración +2
Enviar un mensaje a través de AIM a Zion_Tm Contactar con Zion_Tm a través de MSN Contactar con Zion_Tm a través de Yahoo
Predeterminado Cronometro con decimas de segundo

Hola :

Alguien me puede dar una mano a corregir este cronometro ??

Código:
Option Explicit
Dim decimas As Integer
Dim segundos As Integer
Dim c As Integer
Dim hora As Integer




Private Sub Timer1_Timer()
timer1.interval = 10
Text1.Text = Str(Val(Text1.Text) + 1)
decimas = decimas + 1
Text1.Text = decimas

Text2.Text = segundos
If decimas = 90 Then
    segundos = segundos + 1
End If
If decimas = 100 Then
    decimas = 0
End If
'----------------------------------

Text3.Text = c

If segundos = 59 Then
    c = 1
End If
If segundos = 60 Then
    segundos = 0
End If
'------------------------------------
Text4.Text = hora
If c = 60 Then
    hora = 1
End If
If c = 60 Then
    c = 0
End If
End Sub
Archivos Adjuntos
Tipo de Archivo: zip cronometro2.zip (1,5 KB, 4 visitas)
Responder Con Cita
  #2 (permalink)  
Antiguo 21-01-2007, 08:15:34
Avatar de J.M.Movilla
Administrator
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.167
J.M.Movilla Valoración +2
Predeterminado

Teóricamente creo que quedaría mejor asÍ:
Código:
Option Explicit
Dim decimas As Integer
Dim segundos As Integer
Dim minutos As Integer
Dim horas As Integer


Private Sub Timer1_Timer()

    decimas = decimas + 1
    If decimas = 100 Then
        segundos = segundos + 1
        decimas = 0
    End If
    Text1.Text = decimas
    '----------------------------------
    
    If segundos = 60 Then
        minutos = minutos + 1
        segundos = 0
    End If
    Text2.Text = segundos
    '----------------------------------
    
    If minutos = 60 Then
        horas = horas + 1
        minutos = 0
    End If
    Text3.Text = minutos
    '------------------------------------
    
    If horas > 24 Then
        horas = 0
    End If
    Text4.Text = horas
    
End Sub
Pero compruebo que NO CUENTA correctamente... Hay mucha demora probablemente por el delay de presentación del vídeo... y resulta que en un minuto pierde más de 10 segundos... Y es que para contar décimas de segundo con exactitud no podemos meterle tantas líneas de comparaciones con las que pierde tiempo que no puede admitir el cronómetro.
__________________
José María Movilla Cuadrado
______________________

Visual Basic Videos Programacion Foro Programacion
Tutoriales Programacion Trucos Programacion Codigos Programacion
Responder Con Cita
  #3 (permalink)  
Antiguo 21-01-2007, 12:36:14
Gran Participación en el Foro
 
Registrado: oct 2003
Posts: 430
MiguelS Valoración +2
Predeterminado

Conviene usar el http://www.mvps.org/vb/code/ccrpTmr6.zip.
Con el vas a poder medir correctamente el tiempo con resolucion de 1 ms.
Responder Con Cita
  #4 (permalink)  
Antiguo 22-01-2007, 02:24:41
Buena Participación en el Foro
 
Registrado: ago 2006
Posts: 96
Zion_Tm Valoración +2
Enviar un mensaje a través de AIM a Zion_Tm Contactar con Zion_Tm a través de MSN Contactar con Zion_Tm a través de Yahoo
Predeterminado

Tienes razon , pierde tiempo haciendo la comparacion de los " If " ...... estuve provando una y otra vez hasta que quedo casi correcto modificando las decimas a 63 en vez de 100. ( cotejado con el reloj de win ).

Gracias por la ayuda Sr Movilla , Agradecido :smt006
Responder Con Cita
  #5 (permalink)  
Antiguo 22-01-2007, 07:37:11
Gran Participación en el Foro
 
Registrado: oct 2003
Posts: 430
MiguelS Valoración +2
Predeterminado

El error del tiempo no es previsible y depende de todos los programas que corren en la maquina y de capacidad de la misma.
Por lo tanto, es una mala idea utilizar el timer de vb para medir tiempo.
Con el timer propuesto en mi previo post puedes recibir resultados exactos por que:
1) Tiene una resulucion real de 1ms cuando el de vb no garantiza menos de 10ms.
2) El evento del timer indica exactactamente cuanto tiempo paso , asi que si por alguna razon el evento se demora , se sabe exactamentecuanto tiempo paso.
3) Tiene un objeto stopwatch que mide el tiempo total dese que se resetea , con una resolucion de 1ms.
4) El tiempo esta representado en Long y no en Integer , por loque se pueden medir tiempos largos.
Responder Con Cita
  #6 (permalink)  
Antiguo 22-01-2007, 18:52:49
Avatar de J.M.Movilla
Administrator
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.167
J.M.Movilla Valoración +2
Predeterminado

Indudablemente, MiguelS tiene toda la razón... Olvídate de recursos correctores que no te garantizan ningún buen resultado.
__________________
José María Movilla Cuadrado
______________________

Visual Basic Videos Programacion Foro Programacion
Tutoriales Programacion Trucos Programacion Codigos Programacion
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Creacion de un Cronometro Luis Antonio Castro Visual Basic.NET 2003 & 2005 0 13-06-2007 18:38:19
Cuando se viene el segundo? vbprog Nuestro Propio Programa de TV 5 26-05-2007 02:09:37
Aplicacion en segundo plano exe Visual Basic 6.00 1 26-06-2006 23:48:28
Crear un cronometro Anl Visual Basic 6.00 3 02-10-2005 16:40:31
ejecucion en segundo plano Vbasic_fanatic Visual Basic 6.00 3 17-09-2004 00:00:00


La franja horaria es GMT. Ahora son las 17:54:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right