Sunteți pe pagina 1din 3

TEMPORIZADORES

El control Timer, nos permite la ejecucin de cdigo a intervalos de tiempo predeterminados. Vamos a construir un formulario en el que utilizaremos ambos tipos de temporizadores, el propio control Timer y un objeto de la clase. El primer proceso a codificar, consistir en traspasar a intervalos de tiempo, el contenido de un TextBox del formulario, a otro control de este mismo tipo. El formulario del proyecto se muestra en la figura

Tras incluir los controles de usuario en el formulario, aadiremos un control Timer. Para especificar el espacio de tiempo en el que este control ser ejecutado cuando lo activemos, utilizaremos la propiedad Interval, a la que tenemos que asignar un valor numrico, que establece dicho tiempo en milisegundos. En nuestro caso, asignaremos 500, con lo que el control se ejecutar cada medio segundo. El control Timer lo activaremos llamando a su mtodo Start( ), cosa que hacemos al pulsar el botn Traspasar Texto
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Timer1.Start() End Sub

Una vez activado un temporizador, cada vez que transcurre el tiempo indicado en Interval, genera un evento Tick. Es precisamente en este evento en el que debemos escribir el cdigo que necesitamos que se ejecute a intervalos regulares de tiempo. Haremos, por consiguiente, doble clic en el control Timer del diseador, para acceder al procedimiento manipulador de este evento, cuyo contenido es:

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick


' quitamos una letra del TextBox de origen...

Dim sLetra As String sLetra = Me.TextBox1.Text.Substring(0, 1) Me.TextBox1.Text = Me.TextBox1.Text.Remove(0, 1)


' ...y lo pasamos al TextBox de destino

Me.TextBox2.Text &= sLetra


' cuando se haya traspaso todo el texto ' detener el temporizador

If TextBox1.Text.Length = 0 Then Me.Timer1.Stop() MessageBox.Show("Traspaso finalizado") End If End Sub End Class

En cuanto a los temporizadores por cdigo, vamos a crear un proceso en el que intercambiaremos los colores de fondo de los TextBox del formulario cada segundo. Primero, vamos a declarar una variable de tipo Timer en la clase del formulario, y otra variable Boolean.
Public Class Form1 Inherits System.Windows.Forms.Form
' temporizador por cdigo

Private oTiempo As Timer


' esta variable la utilizaremos para intercambiar ' los colores de fondo de los TextBox

Private bIntercambio As Boolean .. End Class

Al marcar el CheckBox del formulario, instanciaremos un objeto Timer. Asignaremos valores a sus propiedades, los asociaremos a un procedimiento que manipule su evento Tick, y lo pondremos en marcha con Start( ). Como puede ver, los mtodos y propiedades son los mismos que para el control Timer

Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged


' cuando marquemos el CheckBox...

If Me.CheckBox1.Checked Then
' creamos el temporizador

oTiempo = New Timer() oTiempo.Interval = 1000 ' se ejecutar cada segundo


' le asignamos un manipulador para el evento Tick

AddHandler oTiempo.Tick, AddressOf CambioDeColor oTiempo.Start()' arrancamos el temporizador Else


' cuando desmarquemos el CheckBox paramos el temporizador

oTiempo.Stop() oTiempo = Nothing End If End Sub ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


' mtodo manipulador del evento Tick del temporizador ' creado por cdigo

Private Sub CambioDeColor(ByVal sender As Object, ByVal e As EventArgs)


' segn el estado de la variable bIntercambio ' cada vez que se ejecute este mtodo, se ' intercambiarn los colores de fondo de los TextBox

bIntercambio = Not bIntercambio If bIntercambio Then Me.TextBox1.BackColor = Color.Aquamarine Me.TextBox2.BackColor = Color.LightSteelBlue Else Me.textBox1.BackColor = Color.LightSteelBlue Me.textBox2.BackColor = Color.Aquamarine End If End Sub

S-ar putea să vă placă și