Bienvenido a Visual Basic Siglo XXI
Inicio · Artículos · Descargas · Tu cuenta · Foros · Top 10
 
 


 
 
Módulos

· Inicio
· Artículos
· Blogs
· Buscar
· Comentarios
· Descargas
· Encuestas
· Enlaces
· Enviar artículos
· Estadísticas
· Foros
· Mensajes privados
· Recomiéndanos
· Top 10
· Tu cuenta
 
 

 
 
Publicidad

 
 

 
 
¿Quién está en línea?

Actualmente hay 9 invitados, 0 miembro(s) conectado(s).

Eres un usuario anónimo. Puedes registrarte aquí
 
 

 
 
Páginas amigas

Código web
!!! Gana dinero gratis !!!

Mundo JavaScript

Get Firefox!

Sorteo de visas

Audios de Chicho

ActiveLock

CabControl

Blog de Gustavo Alegre

RECMA - Vigilancia por Internet

Soluciones IP Network - Redes Inalámbricas, Cableado Estructurado y Telefonía IP
OnGlasses.net - Contenidos de programación, artículos, foros,  videos, noticias, eventos y chat.
 
 

 
  Cronómetro usando la API GetTickCount
Posted on Saturday, 25 September a las 23:17:35 by galegre

Visual Basic Una clase para crear cronómetros ascendentes y cuentas regresivas en tiempo real que supera las limitaciones del control Timer.

En algunas aplicaciones es necesario controlar el tiempo de una determinada tarea, un procedimiento, y de forma más elaborada en proyectos para control de cybercafés. Básicamente para crear cronómetros se usa el control Timer; sin embargo éste tiene sus limitaciones, como la falta de precisión entre eventos Timer y el contador se detiene al hacer CTRL+ALT+SUPR en Windows 9x, lo que hace que éste control no sea el más adecuado para crear cronómetros en tiempo real. Por ello es recomendable utilizar la API de Windows y esta clase simplifica el uso de la función GetTickCount para la creación de cronómetros de cuenta regresiva y normales.

Código fuente de la clase clsCronómetro:


Option Explicit

'Declaración de la API
Private Declare Function GetTickCount Lib "kernel32" () As Long

'Variables para el control del tiempo
Dim TiempoFinal As Long
Dim TiempoParado As Long
Dim CuandoParó As Long

'Establece una cuenta regresiva, donde
'el argumento "Segundos" es la cantidad de
'segundos que se quiere fijar.
Public Sub EstablecerTiempo(Segundos As Long)
TiempoFinal = QuitarDecimales(GetTickCount / 1000) + Segundos
TiempoParado = 0
End Sub

'Establece una cuenta libre, osea un cronómetro
'común y corriente. Si deseas puedes establecer el
'argumento "TiempoQueHaTranscurrido" para indicar
'desde dónde va a comenzar el cronómetro.
Public Sub EstablecerLibre(Optional TiempoQueHaTranscurrido As Long = 0)
TiempoFinal = QuitarDecimales(GetTickCount / 1000) - TiempoQueHaTranscurrido
TiempoParado = 0
End Sub

'Agrega tiempo a un cronómetro en curso, donde
'"Segundos" es la cantidad de tiempo a agregar.
Public Sub AgregarTiempo(Segundos As Long)
TiempoFinal = QuitarDecimales(TiempoFinal) + Segundos
End Sub

'Utilizar esta función para obtener el tiempo
'en curso de una cuenta regresiva.
Public Function ObtenerTiempo() As Long
ObtenerTiempo = TiempoFinal - QuitarDecimales(GetTickCount / 1000) + TiempoParado
End Function

'Utilizar esta función para obtener el tiempo
'en curso de un cronómetro normal.
Public Function ObtenerTiempoLibre() As Long
ObtenerTiempoLibre = QuitarDecimales(GetTickCount / 1000) - TiempoFinal - TiempoParado
End Function

'Detiene momentaneamente el tiempo de
'un cronómetro en curso.
Public Function CongelarTiempo()
CuandoParó = QuitarDecimales(GetTickCount / 1000)
End Function

'Reanuda el tiempo de un cronómetro en
'curso.
Public Function ReanudarTiempo()
TiempoParado = TiempoParado + QuitarDecimales(GetTickCount / 1000) - CuandoParó
End Function

'Función privada para quitar los decimales que se
'obtienen al llamar a la API GetTickCount.
Private Function QuitarDecimales(ByVal Número) As Long
On Error Resume Next
Dim NúmeroConvertido As String, NúmeroNuevo As String
NúmeroConvertido = Número
If Len(NúmeroConvertido) <> 1 Then
    NúmeroNuevo = Left(NúmeroConvertido, InStr(1, NúmeroConvertido, ".") - 1)
    If Err.Number = 5 Then NúmeroNuevo = NúmeroConvertido
Else
    NúmeroNuevo = NúmeroConvertido
End If
QuitarDecimales = Val(NúmeroNuevo)
End Function


Función FormatoHoras

Adicionalmente a la clase puedes usar esta función para convertir los segundos obtenidos con la función ObtenerTiempo u ObtenerTiempoLibre al formato "hh:mm:ss".


'Función para convertir una cantidad de
'segundos en el formato "hh:mm:ss".
Private Function FormatoHoras(Segundos As Long) As String
Dim Hora As Long, Minuto As Long, Segundo As Long
Dim Tiempo As Single
Tiempo = Segundos
'Separa el tiempo en horas, minutos y segundos
Hora = Int(Tiempo / 3600)
Minuto = Int((Tiempo - Hora * 3600) / 60)
Segundo = Tiempo - Hora * 3600 - Minuto * 60
'Formatea el tiempo como cadena
FormatoHoras = Format(Hora, "00") & ":" & Format(Minuto, "00") & ":" & Format(Segundo, "00")
End Function


 
 

 
 
 
Enlaces Relacionados

· Más Acerca de Visual Basic
· Noticias de galegre


Noticia más leída sobre Visual Basic:
Insertar imagen en un RichTextBox

 
 

 
 
Votos del Artículo

Puntuación Promedio: 4.33
votos: 18


Por favor tómate un segundo y vota por este artículo:

Excelente
Muy Bueno
Bueno
Regular
Malo


 
 

 
 
Opciones


 Versión Imprimible  Versión Imprimible

 Enviar a un Amigo  Enviar a un Amigo

 
 

 
 
Los comentarios son propiedad de quien los envió. No somos responsables por su contenido.
 
 


 
 
No se permiten comentarios Anónimos, Regístrese por favor
 
 


 
 
Re: Cronómetro usando la API GetTickCount (Puntuación 1)
por PABLO el Tuesday, 24 May a las 15:17:21
(Información del Usuario | Enviar un Mensaje)
HOLA SABES PUEDO VER QUE ERES MUY BUENO EN VISUAL BASIC
TENGO QUE REALIZAR UN PROGRAMA PARA LA UNIVERSIDAD, MIRA TENGO QUE CUANDO DE UN CLIC EN UN BOTON ME DE EL TIEMPO EN UN TEXT
BUENO EN TU EJEMPLO DE CRONOMETRO NOSE DONDE PONER CADA CODIGO POR FA AYUDAME TENGO QUE PRESENTAR EN MENOS DE DOS SEMANAS GRACIAS POR TU AYUDA


 
 


 
 
Re: Cronómetro usando la API GetTickCount (Puntuación 0)
por Anonymous el Thursday, 02 June a las 17:59:05
yo hize un cronometro en visual basic con el timer para un ciber pero no se como detenerlo y volverlo a correr pero con el mismo tiempo cuando lo detengo y lo corro me suma el tiempo transcurrido


 
 


 
 
Re: Cronómetro usando la API GetTickCount (Puntuación 1)
por gus23hdz el Wednesday, 06 September a las 17:59:11
(Información del Usuario | Enviar un Mensaje)
Muy interesante.

Recien acabo de entrar al mundo de la programació por las materias de la universidad y me interesa mucho. lamentablemente no cuento con editor de Visual en mi casa mas que el editor de excel. Mi pregunta es: Se puede poner en el editor de excel el mismo codigo que se muestra aqui y obtendré los mismos resultados que si lo pongo en el compilador de Visual?

Puede que mi pregunta suene algo tonta y rebuscada pero es que realmente soy novato en esto y agradecería la ayuda de cualquiera que pueda brindarla


 
 


 
 
Re: Cronómetro usando la API GetTickCount (Puntuación 0)
por Anonymous el Friday, 07 October a las 13:19:44
Muy buena función


 
 


 
 
Re: Cronómetro usando la API GetTickCount (Puntuación 0)
por Anonymous el Friday, 17 February a las 14:34:24
esta muy interesante este programa pero quiero consultarle que como puedo aser para camviar la fecha y hora del sistema de window desde un formulario de vb6.0 ,esdesir el proseso contrario que susede con date y now que solo me muestran la fecha y la hora .

quiero cambiar la fecha y la hora desde el formulario para que me actualise la del sistema


 
 


 
 
Re: Cronómetro usando la API GetTickCount (Puntuación 0)
por Anonymous el Friday, 17 February a las 14:40:05
esta muy interesante este programa pero quiero consultarle que como puedo aser para camviar la fecha y hora del sistema de window desde un formulario de vb6.0 ,esdesir el proseso contrario que susede con date y now que solo me muestran la fecha y la hora .

quiero cambiar la fecha y la hora desde el formulario para que me actualise la del sistema

mi e-mail es antonioazcarate2004@yahoo.com


 
 


 
 
Re: Cronómetro usando la API GetTickCount (Puntuación 1)
por jenju302 el Thursday, 29 March a las 07:43:23
(Información del Usuario | Enviar un Mensaje)
Me parece muy bueno tu codigo fuente pero como hago para poderlo correr en un formulario.Si me puedes ayudar me seria de mucha ayuda.


 
 


 
 
Re: Cronómetro usando la API GetTickCount (Puntuación 1)
por austin1ga el Monday, 10 March a las 21:16:20
(Información del Usuario | Enviar un Mensaje)
free sex trailers chubby black moms [teltplugg.com] bbw natural galleries [www.sanouvle.com] fat sex free clip [www.japantoy.biz] chubby handjob movies [foorum.sait.pri.ee] tall bbw spanking over knee [www.orange-a.com] sex hard fat [shaibone.com] bbw personal ads web site [www.asteptoofar.com] chubby titty pics [www.digital-erosion.com] voluptuous big breasted bbw tgp [mdhs5657.com] bbw+live+cams fat mexicans having sex [www.sosraquetes.com.br] bbw black pic porn [www.citroenc4.com.ar] free black bbw girls galleries [www.goainform.ru] qq asian bbw [www.sandsunandfunemails.net] alabama bbw singles [usuarios.lycos.es] janelle black chubby redhead [www.aquaradio.hu] gonzales bc bbw personal in the free online encyclopedia [www.bayareasmarthome.com] info http tgp chubby com tgp ch14 affiliates [oursuperbowltrip.com] busty bbw mpeg [pidgulko.com.ua] bbw sexy pantes [angelnebes.ru] nude fat bbw woman [forum.muzikz.de] milf bbw aunt polly [www.advokat.az] xxx black bbw magazine [www.brcguerra.it] amateur chubby nude [www.nacoindia.com] bbw free porn uncensored watch [clickdetetives.com]


 
 


 
 
Re: Cronómetro usando la API GetTickCount (Puntuación 1)
por da_vidzs el Tuesday, 11 March a las 00:25:42
(Información del Usuario | Enviar un Mensaje)
muy bueno pero no se donde va que, es decir cual es text o label o que??

gracias por la info


 
 







 
 
Cultura general © 2006. Todos los derechos reservados.
Visual Basic es una marca registrada de Microsoft Corporation.
Esta web ha sido elaborada utilizando PHP-Nuke. Copyright © 2005. Todos los derechos reservados. PHP-Nuke es un Software Libre desarrollado bajo la licencia GNU/GPL.
Página Generada en: 0.280 Segundos