ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

cronometro regressivo

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
SRSantos
Aprendiz
Aprendiz


Registrado: Sábado, 27 de Novembro de 2004
Mensagens: 130

MensagemEnviada: Seg Jun 20, 2005 12:55 pm    Assunto: cronometro regressivo Responder com Citação

ae galera,

alguém sabe como eu posso criar um cronometro regressivo
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gustavocco
Administrador
Administrador


Registrado: Sexta-Feira, 6 de Fevereiro de 2004
Mensagens: 4253
Localização: Chapecó - SC

MensagemEnviada: Seg Jun 20, 2005 1:23 pm    Assunto: cronometro regressivo Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
SRSantos
Aprendiz
Aprendiz


Registrado: Sábado, 27 de Novembro de 2004
Mensagens: 130

MensagemEnviada: Seg Jun 20, 2005 3:35 pm    Assunto: cronometro regressivo Responder com Citação

Amigo deu erro

[Error] Unit1.pas(33): Undeclared identifier: \'maxtime\'

valeu!!!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Banaggia
Membro Junior
Membro Junior


Registrado: Sexta-Feira, 22 de Agosto de 2003
Mensagens: 342
Localização: SayGon - RJ

MensagemEnviada: Seg Jun 20, 2005 4:23 pm    Assunto: cronometro regressivo Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
SRSantos
Aprendiz
Aprendiz


Registrado: Sábado, 27 de Novembro de 2004
Mensagens: 130

MensagemEnviada: Seg Jun 20, 2005 4:48 pm    Assunto: cronometro regressivo Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
blackstile
Novato
Novato


Registrado: Sábado, 11 de Junho de 2005
Mensagens: 55

MensagemEnviada: Seg Jun 20, 2005 8:44 pm    Assunto: cronometro regressivo Responder com Citação

Very Happy 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; Very Happy, 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
Ver o perfil de Usuários Enviar Mensagem Particular
SRSantos
Aprendiz
Aprendiz


Registrado: Sábado, 27 de Novembro de 2004
Mensagens: 130

MensagemEnviada: Ter Jun 21, 2005 7:05 am    Assunto: cronometro regressivo Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
gustavocco
Administrador
Administrador


Registrado: Sexta-Feira, 6 de Fevereiro de 2004
Mensagens: 4253
Localização: Chapecó - SC

MensagemEnviada: Ter Jun 21, 2005 9:45 am    Assunto: cronometro regressivo Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB