Por así decirlo, realiza acciones contrarias a la de un cronómetro, este ultimo lo usamos cuando queremos controlar un tiempo pasado, es decir la duración de algúna acción o un monton de cosas mas.
En este caso será al reves, daremos un tiempo y el mismo comenzará a contar hacia atras.
Es a pedido de un colega del foro www.elhacker.net el cual lo pedia pero en la red se encontraban ejemplos de cronometros siempre y cuando se estableciera en un label (se mostraban resultados en el mismo) y no permitía que el usuario tratara con dichos tiempos.
Para ello hemos utilizado unos Control TextBox, ya que queria permitir que el usuario interactue con el tiempo a descontar;
Usamos 1 Timer, 3 cajas de Texto y 2 botones de comando.
Public Class frmMain
Dim Hora As Integer
Dim Segundo As Integer
Dim Minutos As Integer
'variable para asemejar el segundo
Dim Mx As Integer
Private Sub CalcularyMostrar()
txtHoras.Text = Hora.ToString.PadLeft(2, "0") 'para rellenar en caso que sea menor que dos digitos
txtMinutos.Text = Minutos.ToString.PadLeft(2, "0")
txtSegundos.Text = Segundo.ToString.PadLeft(2, "0")
End Sub
Private Sub cmdIniciar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdIniciar.Click
If txtSegundos.Text = "" Then
MsgBox("debe indicar un tiempo para iniciar retroceso")
Exit Sub
End If
Segundo = txtSegundos.Text
Minutos = txtMinutos.Text
Hora = txtHoras.Text
tmrKonteo.Enabled = True
End Sub
Private Sub tmrKonteo_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tmrKonteo.Tick
'tick es como el timer_timer en visual 6
Mx = Mx - 1
If Mx = 0 Or Mx = -1 Then
Mx = 9
Segundo = Segundo - 1
If Segundo = -1 Then
Segundo = 59
Minutos = Minutos - 1
If Minutos = 0 Then
Minutos = 59
Hora = Hora - 1
End If
End If
CalcularyMostrar()
End If
End Sub
Private Sub cmdDetiene_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDetiene.Click
tmrKonteo.Enabled = False
End Sub
End Class
La sentencia de comparación sobre los segundos que devuelve un mensaje de error, es a modo de ejemplo, sencillamente se muestra como podemos bloquear el inicio si el usuario no ha establecido algún tipo de tiempo a descontar.
Faltaria implementar que al llegar a 0 realize determinadas acciones, que no lo hemos realizado pero el ejemplo lleva a todo lo demas.
Saludos.
No hay comentarios:
Publicar un comentario