Minarini 0 Denunciar post Postado Agosto 15, 2007 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
Osvaldo1br 0 Denunciar post Postado Agosto 16, 2007 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
Minarini 0 Denunciar post Postado Agosto 16, 2007 ola fiz um progect1 e fiz o que você flw compilou só que a label continuou com o caption Label1o que deu errado? Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Agosto 16, 2007 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 min6) 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
Minarini 0 Denunciar post Postado Agosto 16, 2007 ok funcionou só que não em forma de tempo tipo 15:00...14:59...14:58 etc esta funcionando assim900..899....898...897 etc tendeu? Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Agosto 16, 2007 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 minutosok ... abraçsah! naum esquece!!! Mete DateUtils na uses!!! Compartilhar este post Link para o post Compartilhar em outros sites
Minarini 0 Denunciar post Postado Agosto 16, 2007 funcionou beleza vlw rodrigo! Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Agosto 16, 2007 Firmeza!!! :D Precisando... Compartilhar este post Link para o post Compartilhar em outros sites