Minicursos - C#

Timer


Para que possamos fazer uma barra de progresso dentro de uma tela de Splash é necessário compreender a ferramenta Timer, mas ela é bastante simples. Basicamente ela cria eventos recorrentes, ou seja, eventos que se repetem em intervalos de tempo que podemos definir de acordo com nossa necessidade.

Vamos aos exemplos práticos, que mostrarão como lidar com esta simples, mas poderosa ferramenta. Aliás, ela é tão simples que sequer vou utilizar agora o nosso arquivo de exemplo contendo o programa de cadastro de clientes, mas sim criar um projeto vazio, pois será mais fácil demonstrar nele.

Então, em um projeto vazio vou arrastar um componente Timer para ele, conforme imagem abaixo:

Timer C#

Notem que o componente Timer é um dos que não se incorpora diretamente ao formulário, mas que age “nos bastidores”, por isso fica presente no rodapé do Visual C#. Agora, para já demonstrar claramente a função do Timer, vamos arrastar um componente Label para o formulário e alterar o seu texto para o número 1, conforme a imagem abaixo:

Timer C#

Em seguida vamos adicionar um botão ao formulário e rotulá-lo como “Iniciar Timer”, dessa forma:

Timer C#

Agora vamos adicionar código ao botão adicionado. Cliquemos duas vezes nele para gerar a função click e façamos a inserção do código abaixo, que o vinculará ao Timer adicionado:

Timer C#

Com isso fizemos a associação do clique do botão com o disparo do Timer. Agora execute o código e clique no botão para iniciar o disparo.

E então, o que aconteceu? Se no seu programa nada acontece, então está tudo correto! O fato é que associamos o clique do botão ao disparo do Timer, no entanto não vinculamos função alguma ao Timer! Na verdade temos a impressão de que nada está acontecendo, mas de fato o Timer está sendo disparado, só que ele não está programado para fazer nada! Vamos corrigir isso agora. No formulário vamos clicar duas vezes sobre o Timer para criar a função Tick, conforme ilustra a imagem abaixo:

Timer C#

O evento Tick é como se fosse o “Tick” de um relógio, ou seja, o passo do ponteiro dos segundos. Tudo o que estiver dentro desta função será executado a cada iteração do Timer. Então, para que isso se torne visível, criemos o seguinte código:

Timer C#

Este código é bem simples, mas caso não tenha ficado claro, estou pegando a variável global i e a atribuindo ao texto do Label inserido. No mesmo tick, ou seja, no mesmo ciclo faço o incremento dessa variável.

Agora vamos executar o código novamente e clicar no botão de disparo.

Timer C#

Agora o texto do Label está recebendo, a cada iteração do Timer, o valor da variável i, que também é incrementada a cada ciclo.

Nós poderíamos alterar o tempo de cada ciclo deste processo mexendo no valor da propriedade “Interval” do Timer. Altere-o de 100 para 1000, conforme a figura abaixo:

Timer C#

Agora execute e veja a diferença.

Deve ter ficado bem mais lento. Essa propriedade altera o intervalo entre os eventos e, assim como todas as propriedades de tempo do Visual C#, é medida em milissegundos.

E já que estamos falando em propriedades, vou comentar as mais importantes. A primeira é o (Name), que não é novidade e seu funcionamento é idêntico aos botões, checkboxes, textboxes e todos os outros componentes. Em seguida temos o Enabled, que determina se o Timer já iniciará ligado ou não. Para este pequeno exemplo, se o deixarmos com o valor "True", será desnecessário clicar no botão para iniciar o Timer. As propriedades GenerateMember e Modifiers se referem a como o Visual C# tratará o componente, e com sua visibilidade, respectivamente, e a propriedade Tag define uma sequência de identificação para o componente, mas nenhum dos três é relevante para a compreensão do componente Timer. O importante aqui é saber que o Interval define o intervalo entre um ciclo e outro do Timer e que o Enabled pode já inicializar o formulário com ele ativado.

Interrompendo um Timer

Bem, agora que sabemos como iniciar o Timer (função nome_do_timer.Start()), vamos ver como encerrá-lo.

Da forma como nosso pequeno programa está agora, se clicarmos no botão "Iniciar Timer", o Label receberá o valor da variável i, que é incrementada a cada ciclo, portanto temos a impressão que disparamos um contador e que ele não terá fim. Vamos imaginar que queremos que ele pare no número 60. Para isso deveremos criar esse pequeno código:

Timer C#

Esse foi o Timer! Aqui fiz um exemplo simples, que altera uma variável, mas suas opções de uso são inúmeras. O que é importante ser guardado é que ele gera eventos recorrentes, sua função Start inicia o processo e a Stop o interrompe. A propriedade Interval define os tempos, em milissegundos, entre um ciclo e outro e a Enabled o inicia automaticamente se estiver definida com o valor "True". É isso!

No próximo tópico o utilizaremos para inserir uma barra de progresso na tela de Splash.



Notícias - Games

Atari VCS é finalmente lançado e surpreende

O Atari VCS foi lançado recentemente e trouxe suporte a praticamente todos os serviços de streaming de jogos já disponíveis. A única exceção foi por conta do Playstation Now, cujo suporte nativo não é oferecido, mas ele pode ser acessado através do modo PC do VCS, já que o console possui Googl...

Ler Notícia Completa

Conheça o Playstation 2 portátil criado por um brasileiro

Claudio Adriano decidiu criar uma versão portátil do console Playstation 2, da Sony. Inspirado no Nintendo Switch, o console ficou pronto depois de 2 anos de trabalho e algumas interessantes adaptações. Partindo de uma placa-mãe de um PS2 Slim, Claudio fez os encaixes necessários para que a pla...

Ler Notícia Completa

PS5 com SSDs não originais apresentam ótimo resultado

A última atualização do PS5 permite que se faça a expansão do armazenamento do console. Embora o aparelho exija características específicas para os dispositivos de expansão, como taxa de leitura de 5Gb/s, ele funciona surpreendentemente bem com SSDs de velocidades inferi...

Ler Notícia Completa

Capcom Pro Tour sofre o cancelamento de algumas etapas por conta do coronavírus

Em um comunicado ao público via redes sociais, a Capcom revelou que algumas etapas do Capcom Pro Tour foram removidas do calendário como precaução contra o surto de coronavírus pelo mundo...

Ler Notícia Completa

Conheça o Stadia: a incrível plataforma de streaming de games do Google

O Google deu o pontapé inicial para o que espera ser o futuro dos videogames: consoles e hardware em geral ficam em segundo plano, e os games rodam em qualquer dispositivo via streaming. A plataforma Stadia promete levar jogos para notebooks, TVs, celulares e muito mais. O projeto do Google se...

Ler Notícia Completa

Anúncios pornográficos eram exibidos em jogos infantis da Google Play Store devido a um bug

Um app malicioso foi responsável por fazer com que cerca de 60 jogos publicados na Google Play Store veiculassem anúncios pornográficos. Entre os aplicativos estão games infantis e títulos baixados mais um milhão de vezes na loja online da Google. O problema foi flagrado pela empresa de seguran...

Ler Notícia Completa

Sim, jogadores profissionais de games podem ter carteira assinada.

Com a profissionalização dos jogadores de games, quem escolhe viver da habilidade no mouse, teclado ou joystick tem direito a carteira assinada e aos benefícios de atletas e de outros profissionais? Sim. É o que pensam advogados especializados em direito desportivo que estavam na Campus Party 20...

Ler Notícia Completa
Ajude o Contém Bits com um cafezinho!

Se você gostou do artigo, se ele lhe foi útil de alguma maneira e você quiser ajudar o Contém Bits, saiba que é simples, fácil e rápido. Basta clicar na imagem do PayPal (ou no cafezinho) e seguir as instruções, em ambiente seguro e com o respaldo do Paypal. Eu agradeço muito! :)


Você gostará destes vídeos!