| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
SRSantos Aprendiz

Registrado: Sábado, 27 de Novembro de 2004 Mensagens: 130
|
Enviada: Seg Jun 20, 2005 12:55 pm Assunto: cronometro regressivo |
|
|
ae galera,
alguém sabe como eu posso criar um cronometro regressivo |
|
| Voltar ao Topo |
|
 |
gustavocco Administrador

Registrado: Sexta-Feira, 6 de Fevereiro de 2004 Mensagens: 4253 Localização: Chapecó - SC
|
Enviada: Seg Jun 20, 2005 1:23 pm Assunto: cronometro regressivo |
|
|
De uma forma bem simples, vc pode colocar um componente TButton, um TMaskEdit, um TLabel e um TTimer no form e copiar o codigo abaixo.
Altere a propriedade Enabled do TTimer para False;
Ah a propriedade EditMask do TMaskedit vai ficar 00:00:00;1;_ , portanto se o tempo maximo for 10s. vai constar no maskedit 00:00:10...
Evento OnClick do botao....
begin
maxtime := strtotime(maskedit1.text);
timer1.Enabled := true;
label1.Caption := timetostr(maxtime);
end;
Evento OnTimer do componente TTimer
begin
maxtime := (maxtime - strtotime(\'00:00:01\'));
label1.Caption := timetostr(maxtime);
if TimeToStr(maxtime) = \'00:00:00\' then begin
timer1.Enabled := false;
showmessage(\'Tempo esgotou!\');
end;
end;
Nao tive como testar aki... to sem o delphi...
Flw ai... _________________ Top System - www.topsystem.com.br |
|
| Voltar ao Topo |
|
 |
SRSantos Aprendiz

Registrado: Sábado, 27 de Novembro de 2004 Mensagens: 130
|
Enviada: Seg Jun 20, 2005 3:35 pm Assunto: cronometro regressivo |
|
|
Amigo deu erro
[Error] Unit1.pas(33): Undeclared identifier: \'maxtime\'
valeu!!!! |
|
| Voltar ao Topo |
|
 |
Banaggia Membro Junior


Registrado: Sexta-Feira, 22 de Agosto de 2003 Mensagens: 342 Localização: SayGon - RJ
|
Enviada: Seg Jun 20, 2005 4:23 pm Assunto: cronometro regressivo |
|
|
Voi que voce esqueceu de criar a variavel \"maxtime\", eu reproduzir e funcionou...
inicializei assim:
public
{ Public declarations }
maxtime: real;
e mascara do maskedit assim :
__:__:__ = 00:00:00;1;_ _________________ []'s,
Marco Banaggia
SEMPRE COLOQUE [RESOLVIDO] NO SEU POST |
|
| Voltar ao Topo |
|
 |
SRSantos Aprendiz

Registrado: Sábado, 27 de Novembro de 2004 Mensagens: 130
|
Enviada: Seg Jun 20, 2005 4:48 pm Assunto: cronometro regressivo |
|
|
olá amigo
agora deu esse erro quando clico no botão --> \' : : \' is not valid time
o que eu fiz de errado?
valeu!!!
[Editado em 20/6/2005 por SRSantos] |
|
| Voltar ao Topo |
|
 |
blackstile Novato

Registrado: Sábado, 11 de Junho de 2005 Mensagens: 55
|
Enviada: Seg Jun 20, 2005 8:44 pm Assunto: cronometro regressivo |
|
|
Amigo esse erro esta dando por que ao pressionar o botao o maskedit está com um valor que nao representa hora entao o que você deve fazer é o seguinte.
Pegando como exemplo o que foi passado pelo nosso amigo Gustavocco você deve iniciar com um valor antes de pressionar ou entao no evento onclick.
[b] Mas uma forma mais profissional seria no evento onExit você colocaria [/b]
try
maxtime := strtotime(maskedit1.text); [i] // essa linha sai do evento onclick do botao [/i]
except
showmessage(\'O valor inserido de forma incorreta\'+#13+\' Erro de Bios - \"Besta Ignorante Operando o Sistema\" \'+#13- Vai coloca o valor certo logo que eu to perdendo a paciencia\');
maskedit1.setfocus
end;
end;
[b] Dessa forma você captura o erro que ocorre na conversão de string para timer, isso só funcionará quando você estiver fora do ambiente Delphi pois por padrao o Delphi captura os erros, tem como você mudar isso no delphi mais isso nao vem ao caso.
VocÊ vai compilar rodar o programa e depois roda o executavel criado e nao rode pelo delphi que dará erro mesmo[/b]
Evento OnClick do botao....
begin
[i] {aqui ficava linha que passou a ficar na verificaçao na saida do maskedit}[/i]
timer1.Enabled := true;
label1.Caption := timetostr(maxtime);
end;
O resto fica igualzinho beleza
*OBs - VocÊ tem que declarar a variavel maxtime como TTime ou TDateTime; , apesar que eu nao sei se funciona como o banagia mandou você fazer maxtime: real ; :question:
[b] Espero ter ajudado se tiver algum erro é só avisar estamos aqui ´pra aprendermos todo mundo junto.[/b]
Meu status no msn é: [img]http://www.bencastricum.nl/msn/status.php/e86a475c-0ffd-41de-a9b0-511476e2f794.png [/img]
[Editado em 20/6/2005 por blackstile]
[Editado em 21/6/2005 por blackstile] _________________ Meu status no msn é: [img]http://www.bencastricum.nl/msn/status.php/e86a475c-0ffd-41de-a9b0-511476e2f794.png [/img]
Eu odeio policia - Quem é preto como eu já tá ligado qual é nota fiscal RG policia no pé - "Racionais MC's" |
|
| Voltar ao Topo |
|
 |
SRSantos Aprendiz

Registrado: Sábado, 27 de Novembro de 2004 Mensagens: 130
|
Enviada: Ter Jun 21, 2005 7:05 am Assunto: cronometro regressivo |
|
|
Valeu galera!!!!!!!!!
Agradeço a todos que me ajudaram as dicas foram muito importante, consegui fazer o que eu queria e agradeço a vocês.
Obrigado amigos.
|
|
| Voltar ao Topo |
|
 |
gustavocco Administrador

Registrado: Sexta-Feira, 6 de Fevereiro de 2004 Mensagens: 4253 Localização: Chapecó - SC
|
Enviada: Ter Jun 21, 2005 9:45 am Assunto: cronometro regressivo |
|
|
Olah SRSantos, havia esquecido d mencionar q a variavel maxtime era do tipo TTime e q no maskedit vc deveria digitar o valor maximo para o prog. ir decrementando o tempo... e tb q precisava declarar a uses SysUtils se fosse preciso...
Mas blz q tah tdo resolvido..
Abraco
Flw ai.. _________________ Top System - www.topsystem.com.br |
|
| Voltar ao Topo |
|
 |
|