viernes, 30 de octubre de 2009

Cómo Crear un Cronómetro en Vb.net

En esta oportunidad quisiera mostrarles cómo crear un cronómetro en visual basic .net utilizando el componente timer.

Bueno, no pretendo que este sea un ejemplo paso a paso mostrando cada una de las propiedades modificadas de cada control, muy por el contrario, me quiero concentrar en la funcionalidad del cronómetro y les dejaré el diseño a ustedes. Simplemente les mostraré el que hice yo.

Los controles a utilizar son: un formulario, tres botones y dos etiquetas. Tambien necesitaremos agregar al formulario un componente Timer. Se vería mas o mes así:



bien, lo primero que haremos será definir cuatro variables privadas a nivel del formulario.


Private hora As Integer = 0
Private minuto As Integer = 0
Private segundo As Integer = 0
Private milisegundo As Integer = 0

El componente Timer debe tener su propiedad interval en 100.

Crearemos una función para mostrar en el label1 el paso del tiempo:

Sub mostrarTiempo()
Label1.Text = hora.ToString.PadLeft(2, "0") & ":"
Label1.Text &= minuto.ToString.PadLeft(2, "0") & ":"
Label1.Text &= segundo.ToString.PadLeft(2, "0") & ":"
Label1.Text &= milisegundo.ToString.PadLeft(1, "0")
Label1.Refresh()
End Sub

En el evento tick del componente Timer es donde se desarrolla toda la lógica del cronómetro. Copia el siguiente código allí:

milisegundo += 1
If milisegundo = 10 Then
milisegundo = 0
segundo += 1
If segundo = 60 Then
segundo = 0
minuto += 1
If minuto = 60 Then
minuto = 0
hora += 1
End If
End If
End If
mostrarTiempo()

Bueno, solo resta el código de los tres botones. El botón iniciar activa el timer:

Timer1.Enabled = True

El botón Pausa detiene el timer:

Timer1.Enabled = False

Y el botón volver a cero resetea los valores de las variables:

hora = 0
minuto = 0
segundo = 0
milisegundo = 0

mostrarTiempo()

Espero que este ejemplo no les resulte complicado y por sobre todo que les sea util. Por último les dejo una captura del cronómetro en funcionamiento:



En el botón extra de tiempo Random (1er exámen del curso neteros):

hora = Math.Truncate(rnd() * 24)
minuto = Math.Truncate(rnd() * 60)
segundo = Math.Truncate(rnd() * 60)
milisegundo = Math.Truncate(rnd() * 10)

mostrarTiempo()

*** Nota: ***
Poner la palabra Randomize en el Form_Load

1 comentario:

  1. y como seria hacer con tres digitos los milisegundos??....no encuentro

    ResponderEliminar