Relogio na Aplicação
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?
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
Curtidas 0
Respostas
Renatacoimbra
08/01/2006
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
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
GOSTEI 0
Antseralves
08/01/2006
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
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
GOSTEI 0
Raserafim
08/01/2006
antseralves, conforme falei no meu tópico, fiz desta forma que vc sugeriu, mas assim fica descompasado. estou procurando uma outra solução
GOSTEI 0
Raserafim
08/01/2006
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
o que muda aí é o tempo, mas isso tb poderia fazer no Ttimer.
...mas valeu pela opção
GOSTEI 0
Edilcimar
08/01/2006
coloque um label onde quiser, aumente o tamanho da fonte por ex. 12, e depois coloque Label1.Caption := TimeToStr(Time);
GOSTEI 0
Antseralves
08/01/2006
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 ?
Pode explicar melhor ?
GOSTEI 0
Raserafim
08/01/2006
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
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
GOSTEI 0
Thomaz_prg
08/01/2006
Basta colocar a propriedade Interval do timer pra 1, assim você teria uma precisão em milissegundos.
GOSTEI 0
Raserafim
08/01/2006
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.
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.
GOSTEI 0
Raserafim
08/01/2006
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.
era isso que eu realmente queria.
GOSTEI 0
Franthesco
08/01/2006
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]
É 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]
GOSTEI 0
Raserafim
08/01/2006
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.
o que ele faz é usar o Timer da forma como agente já citou até agora.
mas valeu.
GOSTEI 0