Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MIC_DUARTE

[Tutorial] Projeto de Relógio Digital em C++ Builder

Recommended Posts

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/default/joia.gif Salve o projeto, dando os nomes à unidade e ao projeto respectivamente. Em seguida, compile e execute o programa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.