Fórum Relogio na Aplicação #308278

08/01/2006

0

quero colocar um relogio na minha aplicação. apenas os dígitos hh:mm:ss
pensei em um Ttimer que fica verificando a função Time a cada um segundo.
o problema é que fica um pouco descompasado, dependendo do momento em que a aplicação foi aberta.

tem algum evento disparado pelo windows quando muda o segundo?
e a data? tem algum evento que é disparado quando a data muda?


Raserafim

Raserafim

Responder

Posts

08/01/2006

Renatacoimbra

Oi

vc pode criar um objeto do tipo TThreads

e colocar um intervalo 100 por exemplo pegando a hora atual, dessa forma sempre vai mostrar os segundos atualizados.

[]´s


Responder

Gostei + 0

08/01/2006

Antseralves

1) Abra um novo projeto
2) Coloque um TPanel no centro do formulário
3) Coloque um TTimer no formulário. Nas propriedades abaixo faça:

Enabled := true
Interval = 1000 (Já devem estar assim)

4) No evento OnTimer do TTimer escreva:

[b:1f98d9b025]Panel1.Caption := TimeToStr(Time);[/b:1f98d9b025]

5)Execute o programa


Responder

Gostei + 0

08/01/2006

Raserafim

antseralves, conforme falei no meu tópico, fiz desta forma que vc sugeriu, mas assim fica descompasado. estou procurando uma outra solução


Responder

Gostei + 0

08/01/2006

Raserafim

Renata, numca usei Tthreads, mas pelo mesnos neste caso acho que não é muito diferente do TTimer né?
o que muda aí é o tempo, mas isso tb poderia fazer no Ttimer.
...mas valeu pela opção


Responder

Gostei + 0

08/01/2006

Edilcimar

coloque um label onde quiser, aumente o tamanho da fonte por ex. 12, e depois coloque Label1.Caption := TimeToStr(Time);


Responder

Gostei + 0

08/01/2006

Antseralves

Olha. Eu não entendi o q vc quer dizer com ...[b:fcda99f25a]um pouco descompasado, dependendo do momento em que a aplicação foi aberta. [/b:fcda99f25a]

Pode explicar melhor ?


Responder

Gostei + 0

08/01/2006

Raserafim

se no momento em que abrir a aplicação a hora for 20:30:05, mas tem tb os milisegundos embutidos.
se no momento em que abrir a hora tiver bem pertinho de passar para 06 segundos, mas a plicação ainda vai colocar 05 segundos, e só vai atualizar para 06 segundos 1 segundo depois.

faça o teste: abra a sua aplicação e depois abra o relógio do windows, e compare o momento em q os segundos passam


Responder

Gostei + 0

09/01/2006

Thomaz_prg

Basta colocar a propriedade Interval do timer pra 1, assim você teria uma precisão em milissegundos.


Responder

Gostei + 0

09/01/2006

Raserafim

hee vou acabar utilizando o Timer mesmo, e colocando um intervalo menos (ex: 500). assim resolveria o problema.
mas acho q ainda não é a melhor solução. pois acho q deve ter algum evento q o windows dispara a cada mudança do segundo. assim eu não precisaria ter um evento disparando a cada meio segundo.


Responder

Gostei + 0

09/01/2006

Raserafim

e a data? que ao invés de eu verificar se ela mudou a cada meio segundo, deve ter algum evento do windows que dispara ao mudar a data.
era isso que eu realmente queria.


Responder

Gostei + 0

09/01/2006

Franthesco

Caro colega raserafim, creio que este componente possa lhe auxiliar na questão da hora.

É um componente que fica exibindo a hora atual do sistema no formato hh:mm:ss como um relogio digital.


Link:
[url]http://www.delphi.eti.br/downloads.php?id=3017[/url]


Responder

Gostei + 0

10/01/2006

Raserafim

baixei este componente e olhei o código.
o que ele faz é usar o Timer da forma como agente já citou até agora.
mas valeu.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar