en esta oportunidad quisiera mostrarles cómo crear un cronómetro en visual basic
TRANSCRIPT
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.
view source
print? 1.Private hora As Integer = 0 2.Private minuto As Integer = 0 3.Private segundo As Integer = 0 4.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:
view source
print? 1.Sub mostrarTiempo() 2. Label1.Text = hora.ToString.PadLeft(2, "0") & ":" 3. Label1.Text &= minuto.ToString.PadLeft(2, "0") & ":" 4. Label1.Text &= segundo.ToString.PadLeft(2, "0") & ":" 5. Label1.Text &= milisegundo.ToString.PadLeft(1, "0")
6. 7. Label1.Refresh() 8.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í:
view source
print?
01.milisegundo += 1 02.If milisegundo = 9 Then 03. milisegundo = 0 04. segundo += 1 05. If segundo = 59 Then 06. segundo = 0 07. minuto += 1 08. If minuto = 59 Then 09. minuto = 0 10. hora += 1 11. End If 12. End If 13.End If 14.mostrarTiempo()
Bueno, solo resta el código de los tres botones. El botón iniciar activa el timer:
view source
print? 1.Timer1.Enabled = True
El botón Pausa detiene el timer:
view source
print? 1.Timer1.Enabled = False
Y el botón volver a cero resetea los valores de las variables:
view source
print? 1.hora = 0 2.minuto = 0 3.segundo = 0 4.milisegundo = 0
5. 6.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:
DFGHÑ{GHJKLÑ{H
SD
FGH
JMK
,L
En esta oportunidad quiero mostrarles un pequeño ejemplo en visual basic .net que me
gustó mucho cuando lo hice por primera vez. No es algo que usemos todos los días pero
estoy seguro que les gustará y ya encontrarán donde hacerlo. Particularmente me gusta
usarlo cuando muestro el cuadro “Acerca de… ” en algunas de mis aplicaciones…
Se trata de la aparición gradual de un formulario, comienza transparente hasta que se ve al
100%. Para realizarlo necesitamos utilizar un control timer y la propiedad Opacity del
formulario.
En el ejemplo lo que haremos será crear dos formularios (Form1 y Form2), el Form1 con
un botón y la acción de este botón es llamar al segundo formulario. El segundo formulario
irá apareciendo gradualmente y hará lo mismo cuando lo cerremos. Debería verse como en
la imagen siguiente:
Bueno, manos a la obra, jaja.
Primero el evento click del botón para que cargué el segundo formulario:
view source
print? 1.Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 2. Dim vForm2 As New Form2 3. vForm2.ShowDialog() 4.End Sub
En el segundo formulario insertaremos dos componentes Timer’s (Timer1 y Timer2).
Luego copiamos el siguiente código:
view source
print? 01.Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 02. Me.Opacity = 0 03. Timer1.Interval = 25 04. Timer1.Enabled = True 05.End Sub
06.
07.Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing 08. Timer2.Interval = 25 09. Timer2.Enabled = True 10. If Me.Opacity > 0 Then 11. e.Cancel = True 12. End If 13.End Sub
14. 15.Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 16. If Me.Opacity = 1 Then 17. Timer1.Enabled = False 18. Else 19. Me.Opacity = Me.Opacity + 0.02 20. Me.Refresh() 21. End If 22.End Sub
23. 24.Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick 25. If Me.Opacity = 0 Then 26. Timer2.Enabled = False 27. Me.Close() 28. Else 29. Me.Opacity = Me.Opacity - 0.02 30. Me.Refresh() 31. End If 32.End Sub
Voy a explicar en breves palabras que es lo que hace:
Los formularios windows tienen una propiedad llamada Opacity que almacena un valor
que va de 0 hasta 1. Este valor indica el porcentaje de opacidad del formulario, siendo 1 el
100% opaco y 0 0% opaco, lo que sería lo mismo que decir 100% transparente. Por eso con
un valor 0.5 tendriamos un formulario 50% opaco o 50% Transparente (como más te
guste).
Lo que hace un control Timer es ejecutar el código del evento Tick miestras el Timer tenga
la propiedad enable en True y cada un intervalo determinado por la propiedad Interval.
Entonces tenemos el Timer1 para cuando se abre el formulario (por eso lo acrivo
“Timer1.Enable = True” en el evento Load y Timer2 para cuando se cierra (Activado en el
evento Closing del Formulario).
Bueno, no quiero abundar en explicaciones porque el código es breve y creo que no hay
mucho más que aclarar.
Si te gustó este ejemplo deja un comentario. Me gustaría saber cuales son las preferencias
de mis visitantes.