C# - Relógio Digital


Hoje vamos criar um relógio digital usando a linguagem C#.

Existem centenas, para não dizer milhares de formas de criarmos um relógio digital usando C#.

Talvez a que eu vou mostrar hoje não seja a mais otimizada nem a melhor mas é uma opção viável e funciona.

Abra então o Visual C# 2010 Express Edition e crie um novo projeto do tipo Windows Forms Application chamado RelogioLegal;

No formulário form1.cs inclua os seguintes controles a partir da ToolBox:

Conforme o leiaute abaixo:

Vamos iniciar declarando os namespaces usados no formulário form1:

using System;
using System.Drawing;
using System.Windows.Forms;

A seguir, após a declaração da classe Form1 vamos criar um a instância do controle Timer:

private Timer tmr = new Timer();

Após isso defina o código do evento Load do formulário:

private void Form1_Load(object sender, EventArgs e)
        {
            tmr.Interval = 1;
            tmr.Enabled = true;
            tmr.Tick += new EventHandler(Ticks);
            //define as imagens 
            Pic3.Image = ImgDigitos.Images[10];
            Pic6.Image = ImgDigitos.Images[10];
        }

O evento Ticks possui o seguinte código:

 private void Ticks(object sender, EventArgs e)
 {
            string Src = DateTime.Now.ToString();
            //Localiza o espaço na string Src
            int sPos = Src.IndexOf(" ");

            //Extrai a hora
            string sHora = Src.Substring(sPos + 1, Src.Length - sPos - 1);
            //Extraia e atualiza a data
            lblData.Text = Src.Substring(0, sPos);
            //Define os digitos
            Pic1.Image = GetImageIndex(sHora[0].ToString());
            Pic2.Image = GetImageIndex(sHora[1].ToString());
            Pic4.Image = GetImageIndex(sHora[3].ToString());
            Pic5.Image = GetImageIndex(sHora[4].ToString());
            Pic7.Image = GetImageIndex(sHora[6].ToString());
            Pic8.Image = GetImageIndex(sHora[7].ToString());
  }    

A rotina GetImageIndex() que extrai e gera as imagens tem o código abaixo:

 private Image GetImageIndex(string num)
 {
      return ImgDigitos.Images[Convert.ToInt32(num)];
 }

No evento FormClosing do formulário form1.cs inclua o código a seguir:

 private void frmmain_FormClosing(object sender, FormClosingEventArgs e)
 {
        tmr.Enabled = false;
}

Executando o projeto teremos a exibição do relógio conforme mostra a figura:

Pegue o projeto completo aqui: RelogioLegal.zip

1Pe 1:24 Porque: Toda a carne é como a erva, e toda a sua glória como a flor da erva. Secou-se a erva, e caiu a sua flor;

1Pe 1:25 mas a palavra do Senhor permanece para sempre. E esta é a palavra que vos foi evangelizada.

Referências:


José Carlos Macoratti