VB .NET - Usando o Controle Timer
O componente Timer presente no VB.NET não é igual ao timer das versões anteriores. No VB6 o controle timer apresentava a seguinte peculiaridade:
Você podia atribuir o valor zero à propriedade Interval do controle para desativá-lo e isto equivale a definir a sua propriedade enabled igual a False
Mas a propriedade enabled podia estar definida como True e ainda assim o controle ficaria desativado se a propriedade Interval fosse definida como zero.
No VB.NET você não pode mais atribuir o valor zero a propriedade Interval . Para ativar o controle deve definir enabled = True.
Nota - Outra alteração no VB.NET , ainda que não se refira diretamente ao controle Timer , são as declarações Date e Time ; estas declarações foram substituídas pelas declarações Today e TimeOfDay.
O objetivo básico do controle Timer é permitir que o seu código seja executado a um certo intervalo com base em períodos de tempo. Se o controle estiver ativo ele irá acionar o evento Tick a intervalos regulares que você pode definir. Você então deve inserir o código no evento Tick para executar a operação que você deseja que seja executada nos intervalos definidos.
O controle Timer não possui uma interface visível em tempo de execução somente em tempo de desenho.
Resumo para usar o controle Timer :
Insira o controle no formulário e configure as seguintes propriedades:
Enabled igual a True para ativar o controle
Atribua um valor a propriedade Interval (em milisegundos - 1000 ms é igual a 1s) que deseja entre os eventos
Vamos a um exemplo prático:
- Inicie um novo projeto no VB.NET do tipo Windows Application
- Dê ao projeto um nome sugestivo , algo como - Relogio.
- Insira um controle Label e altere sua propriedade Name para lblrelogio
- Insira o controle Timer no formulário.
Nota: Na verdade o controle não fica inserido no formulário , mas numa área separada abaixo da do projeto , isto deixa deixa o formulário mais limpo e não interfere na visualização do projeto do formulário.
|
- Defina a
propriedade Enabled como True - Defina a propriedade Interval igual 1000 - No evento Tick do controle Timer insira o código abaixo :
|
Executando o projeto o evento o código do evento Tick do controle Timer irá ser executado a cada 1 s , com isto a hora atual do seu micro será exibida no controle :
A classe Timer esta presente no namespace System.Timers e podemos usar uma declaração Import para criar um novo Timer :
Imports System.Timers
Dim t as new Timer() |
Dim t As New System.Timers.Time() |
Podemos usar outro construtor que permite atribuir um valor para o nosso controle Timer:
Dim t As New System.Timers.Timer(3000) |
Assim como usamos o evento Tick do controle Timer podemos incluir um manipulador de eventos ao controle Timer de maneira a receber as notificações do controle :
AddHandler t.Elapsed, AddressOf DispararTimer
Public Sub DispararTimer(ByVal seder As Object, ByVal e As System.Timers.ElapsedEventArgs) ' seu código aqui End Sub |
Vejamos um exemplo:
Inicie um novo projeto no VB.NET do tipo Windows Application
- Dê ao projeto um nome sugestivo , algo como - Timer2 - Insira dois controles Button e altere o nome padrão para : btnIniciar e btnParar - Insira um controle Label - label1 - com cor de fundo amarelo e fonte Verdana 12 cor azul
- Ao lado o layout do formulário |
|
Agora vamos ao código :
- No inicio do código do formulário vamos instanciar a variável objeto tempo como do tipo Timer iniciando o seu valor com 1000 ms ( igula 1 s)
Private tempo As New System.Timers.Timer(1000)- Agora no evento Load do formulário vamos definir o evento que irá manipular o controle Timer
AddHandler tempo.Elapsed, AddressOf DispararTimer- A seguir o código da rotina que irá manipular o evento do controle Timer. A rotina irá atribuir o valor da data e hora atual a Label que a exibirá no formulário.
Public
Sub DispararTimer(ByVal
sender As
Object,
ByVal e
As System.Timers.ElapsedEventArgs) Label1.Text = e.SignalTime.ToString End Sub |
- Para ativar a rotina o código do botão - Parar - apenas define a propriedade enabled como True. Para desativar basta definir enabled como False:
Private
Sub
btnIniciar_Click(ByVal
sender As System.Object, ByVal e
As System.EventArgs) Handles
btnIniciar.Click tempo.Enabled = True End SubPrivate Sub btnParar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnParar.Click tempo.Enabled = False End Sub |
Executando o projeto e clicando no botão - Iniciar - teremos:
Como palavra final gostaria de lembrar que o controle Timer não faz trabalho simultâneo. Se você usar dois controles Timers no formulário e executá-los ao mesmo tempo um Timer irá trabalhar interrompendo o seu código para uma única tarefa.
Logo Timers não
são adequados para tarefas de longa duração que requeiram execução
simultâneas.(Para isto use uma Thread)
Até o próximo artigo VB.NET.
Veja os
Destaques e novidades do
SUPER DVD VB (sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ? Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira... Quer aprender C# ?? Chegou o Super DVD C# com exclusivo material de suporte e vídeo aulas com curso básico sobre C#. |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: