Ir para conteúdo

POWERED BY:

Arquivado

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

Minarini

Como decrementar um tempo?

Recommended Posts

ola tenho um timer configurado com 900000 (15 Minutos) para dar uma sincronizada com as minhas tabelas da internet. então quero colocar uma label recebendo o valor do timer ate sincronizar apos feito a sincronização ela volta para os 15:00por exemplo15:00.....14:59...14:58.................00:10..........00:00 (atualiza) ...........15:00...........14:59resumindo: a label informará daqui a quanto tempo que sera feito a proxima sincronização ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

a parte de sicronizar eu não sei mas aparte de uma label recebendo o valor do timer ate 00:00 e volta para os 15:00 testa isso Coloque dois TTimer(timer1,Timer2) e um TLabel(label1)na propriedade 'Interval' do 'timer1' poe '900000' e do 'timer2' poe '1000'Agora coloque esse codigo: function SecToTime(Sec: Integer): string;var ZH, ZM, ZS: Integer;begin ZH := Sec div 3600; ZM := Sec div 60 - ZH * 60; ZS := Sec - (ZH * 3600 + ZM * 60); RESULT := Format('%0.2d:%0.2d', [ZM, ZS]);end;//procedure ontime do timer2var segundo:integer; tempo:string;beginsegundo:=Trunc(timer1.Interval/1000);timer1.Interval:=timer1.Interval-1000;SecToTime(segundo);tempo:=SecToTime(segundo);if tempo='00:00' thentimer1.Interval:=900000;label1.Caption:=tempo;end;// espero ter ajudado em alguma coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Minarini beleza?

Montei um exemplo bem simples aki, pra q possa adaptar de acordo com sua necessidade.

1) Abra um novo projeto de teste.

2) Coloque um label e chame de Label1;

3) Coloque um Timer e configure assim:

Enabled:= False;   Interval:= 1000;   Name:= Timer1;
4) Declare uma variavel global -- > aNow: Integer;

5) No onShow do form1:
Timer1.Enabled:= True;  aNow:= 900; // 15 min
6) No onTimer do Timer1 faça assim:
Label1.Caption:= IntToStr(aNow);Dec(aNow);if (aNow = -1) thenbegin	Timer1.Enabled:= False;	Atualizou(); // chama funcao pra sincronizacaoend;
7) Implemente a funcao:

function TForm1.Atualizou: Boolean;	begin	  {Aki vai a rotina de Sincronizacao ...}	  aNow:= 900; // 15min	  Timer1.Enabled:= True;	  Result:= True;	  ShowMessage('Sincronizacao Realizada com sucesso!');	end;
Pronto!!! Compile e execute o projeto!!! vlw ... abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mude o tipow de variavel de integer pra TTime

aNow: TTime;
procedure TForm1.Timer1Timer(Sender: TObject); begin   Label1.Caption:= TimeToStr(aNow);   aNow:= IncSecond(aNow,-1);   if (aNow < StrToTime('00:00:00')) then   begin	 Timer1.Enabled:=  False;   end; end;
e no onShow

aNow:= StrToTime('00:15:00'); // 15 minutos
ok ... abraçs

ah! naum esquece!!! Mete DateUtils na uses!!!

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.