Algunas veces necesitamos en una parte de nuestra aplicación añadir
un retardo.
Un evento cada cierto tiempo. Ya sea para la creación de un archivo.
Comprobar
la existencia de este archivo,la ejecución de un proceso cada x
segundos.
Este control tiene propiedades importantes como son:
- Delay
- Enabled
Delay es la cantidad de tiempo o el retardo que se produce cada x
milisegundos
antes de ejecutar un grupo de instrucciones incluidas dentro del
código del Timer.
El valor de la propiedad esta por defecto en 1000 mS, un segundo. :-)
¿ Como hacemos para activar nuestro Timer ?.
Lo podemos hacer de dos formas.
Timer.Enabled = True
Activa el Timer. O de una manera mas sencilla.
Timer.Start
Y nos ahorramos algo de código.
Para parar nuestro timer hacemos:
Timer.Enabled = false
Ó
Timer.Stop
Nuestro código se encuentra en el procedimiento del Timer tal que
así:
PUBLIC SUB Timer1_Timer()
END
En el podemos añadir nuestro código o también llamadas a otros
procedimientos.
A continuación os muestro varios ejemplos con este componente:
Imitación de una barra de progreso con el componente Label y Timer.
Public
Sub
Timer1_Timer()
If
lblBarra.Width
< 335
Then
lblBarra.Width
=
lblBarra.Width
+
5
'Aumentamos
el ancho de la barra en 5,10,20...
Else
Timer1.Stop
'Se
para el Timer1
Endif
End
Public
Sub
Form_Open()
'Inicializamos
los valores
Me.Caption
=
"Simula
barra de progreso"
Me.Center
'Podemos
asignar estos valores en las propiedades de los componentes
lblBarra.Width
=
0
lblBarra.Background
=
Color.Blue
Timer1.Delay
=
50
Timer1.Start
'Iniciamos
el Timer1
End
Un reloj:
Public
Sub
_new()
End
Public
Sub
Form_Open()
Me.Caption
=
"RELOJ"
End
Public
Sub
Timer1_Timer()
Dim
tiempo As
Date
tiempo =
Time
lblreloj.Text
=
Format$(tiempo,
"hh:nn:ss")
End
Public
Sub
cmdIniciar_Click()
Timer1.Start
End
Public
Sub
cmdDetener_Click()
Timer1.Stop
End
Un temporizador:
Private
inicio As
Date
Public
Sub
_new()
End
Public
Sub
Form_Open()
Me.Caption
=
"TEMPORIZADOR"
End
Public
Sub
Timer1_Timer()
Dim
tiempo As
Date
tiempo =
Time
-
inicio
lbltempo.Text
=
Format$(tiempo,
"hh:nn:ss")
End
Public
Sub
cmdIniciar_Click()
inicio =
Time
Timer1.Start
End
Public
Sub
cmdDetener_Click()
Timer1.Stop
End
Con pocas instrucciones hemos creados dos aplicaciones que pueden ser
útiles.
Hemos visto la instrucción Format. Nos muestra en la etiqueta el
contenido de la
variable tiempo con el formato horas,minutos,segundos con dos dígitos
cada una.
Un ejemplo más:
' Gambas
class file
PRIVATE
estado AS
Boolean
PRIVATE
alerta AS
Sound
PRIVATE
canal1 AS
Channel
'La
aplicación usara la pantalla completa,usar Alt-Tabulador para
cambiar
'entre
aplicaciones y usar stop del editor.Esto hay que cambiarlo
PUBLIC
SUB
_new()
END
PUBLIC
SUB
Form_Open()
'Ajustamos
el tamaño del formulario
WITH
ME
.Width
=
Desktop.Width
.Height
=
Desktop.Height
.FullScreen
=
TRUE
END
WITH
'Ajustamos
propiedades de la etiqueta
WITH
lbMensaje
.Alignment
=
Align.Center
'Cambiar
el divisor por un valor más grande si no entra todo el texto en
vuestra pantalla.
'En
este equipo uso 1680x1050
.Font.Size
=
lbMensaje.Height
/
1.2
.Font.Bold
=
TRUE
END
WITH
'Cambiamos
o creamos las propiedades para el sonido
Channels.Count
=
1
canal1 =
Channels[0]
canal1.Volume
=
0.4
alerta =
NEW
Sound["Alert.wav"]
Timer1.Start
END
PUBLIC
SUB
Timer1_Timer()
canal1.Play(alerta)
'Hacemos
sonar el sonido que contiene la variable alerta
'Cada
segundo cambia el contenido del texto de la etiqueta
IF
estado =
FALSE
THEN
WITH
lbMensaje
.Background
=
Color.Yellow
.Foreground
=
Color.Red
.Text
=
"ALERTA"
END
WITH
ELSE
lbMensaje.Text
=
"INTRUSO"
ENDIF
estado =
NOT
estado
END