[Tutorial] Projeto de Relógio Digital em C++ Builder
Inicie um novo projeto no C++ Builder e defina as propriedades Caption e Name do formulário com as cadeias de caracteres " Relógio Digital " e " formRelogio". Selecione ainda a opção bsDialog para BorderStyle e poScreenCenter para Position. Com isso, teremos uma janela do tipo caixa de diálogo centralizada na tela.
Adicione um componente Label ao formulário e digite como texto da propriedade Caption a expressão " 99:99:99 ". Para a propriedade Name entre com "lblHora". Clique no ícone da propriedade Font e ajuste as opções para "Arial", " Cor Azul", "Estilo Negrito", "Tamanho 18". em AutoSize escolha a opção false.
Adicione outro Label configurando as propriedades Caption e Name com os valores "DiaSemana - 99/99/9999" e "lblData" respectivamente. Configure a propriedade Font com "Tmes New Roman", "Cor Preto", "Estilo Negrito e itálico", "Tamanho 14". Configure ainda a propriedade AutoSize para false.
Abaixo da última legenda insira um botão com as seguintes configurações:
Propriedade: Kind - Valor: bkOK
Propriedade: Name - Valor: btnOK
Ajuste as dimensões do formulário e a largura no tamanho que lhe convier ( ideal é um retângulo pequeno ). Para finalizar a definição do formulário, adicione um componente Timer (guia System) e digite na propriedade Name a cadeia de caracteres "tmrRelogio". Esse componente é responsável pela medição do tempo. Ele não é visível no tempo de execução.
A propriedade Interval define a batida do relógio, isto é, o intervalo de tempo para que uma ação ocorra. Esse intervalo é contado em milésimos de segundos, o que significa que para definir um intervalo de 1 segundo, devemos especificar o valor 1.000 nessa propriedade.
Agora vamos às rotinas que serão executadas pelo nosso pequeno programa. Clique no botão Toggle Form/Unit para alternar entre o editor de formulários e o editor de códigos. Digite logo após a delcaração "TformRelogio*formRelogio;" a função que se encontra abaixo:
void MostraData(void)
{
TDateTime dtHoje;
int intDiaSemana;
String strDiaSemana;
dtHoje = Date();
intDiaSemana = DayOfWeek(dtHoje);
switch(intDiaSemana) {
case 1: strDiaSemana = "Domingo - ";
break;
case2: strDiaSemana = "Segunda-feira - ";
break;
case 3: strDiaSemana = "Terça-feira - ";
break;
case 4: strDiaSemana = "Quarta-feira - ";
break;
case 5: strDiaSemana = "Quinta-feira - ";
break;
case 6: strDiaSemana = "Sexta-feira - ";
break;
case 7: strDiaSemana = "Sábado - ";
break;
}
formRelogio->lblData->Caption = strDiaSemana + DateToStr(dtHoje);
}
Essa função declara uma variável do tipo TDateTime para armazenar a data atual do sistema. Para recuperar a data do sistema, utilizamos a função Date() da biblioteca de funções do C++ Builder 6.
De posse da data atual, passamos à determinação do dia da semana. Isso é possível chamando a função DayOfWeek(), que retorna um valor numérico de 1 a 7 conforme a data.
A seguir, é efetuado um teste do valor da variável intDiaSemana. Uma cadeia de caracteres é assim atribuída a strDiaSemana, de acordo com esse valor.
Uma cadeia de caracteres formada pela junção da variável strDiaSemana e o valor retornado pela função DateToStr() é atribuída à propriedade Caption do objeto lblData. A função DateToStr() converte uma data passada (variável dtHoje, no nosso caso) como parâmetro numa cadeia de caracteres.
Volte ao formulário e dê um duplo-clique sobre o objeto tmrRelogio. Digite o código abaixo:
**void_fastcall TformRelogio::tmrRelogioTimer(TObject *Sender)**
{
lblHora->Caption = TimeToStr(Time());
}
Essa função membro é executada a cada batida do relógio. O que ela faz é simplesmente apresentar na propriedade Caption do objeto lblHora o valor atual da hora do sistema. Isso é feito passando o valor da função Time() como parâmetro a TimeToStr() que converte esse valor numa cadeia de caracteres.
Para o evento OnShow do formulário, digite o seguinte código:
**void_fastcall TformRelogio::FormShow(TObject *Sender)**
{
MostraData();
lblHora->Caption = TimeToStr(Time());
}
Primeiramente a função MostraData(), exposta anteriormente, é chamada e depois a hora corrente é atribuída ao objeto lblHora.
Agora dê um duplo-clique sobre o botão e digite o código abaixo:
**void_fastcall TformRelogio::btnOKClick(TObject *Sender)**
{
Application->Terminate();
}
[http://forum.imasters.com.br/public/style_emoticons/](http://forum.imasters.com.br/public/style_emoticons/)default/joia.gif Salve o projeto, dando os nomes à unidade e ao projeto respectivamente. Em seguida, compile e execute o programa.Discussão (1)
Carregando comentários...