Comparar horas com timer
Quero fazer uma rotina que fique comparando a hora do sistema com uma hora armazenada em uma variável, desenvolvi a seguinte rotina mas não está funcionando:
Ele entra no IF uma vez, e depois não entra mais...
Ele entra no IF uma vez, e depois não entra mais...
procedure TForm1.FormCreate(Sender: TObject); begin hora_alarme := Time + StrToTime(´00:00:05´); Label1.Caption := TimeToStr(hora_alarme); Timer1.Enabled := True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin if Time = hora_alarme then begin MessageDlg(´Teste´, mtWarning, [mbOK], 0); hora_alarme := Time + StrToTime(´00:00:05´); Label1.Caption := TimeToStr(hora_alarme); end; end;
Vispo
Curtidas 0
Respostas
Rjun
19/08/2005
Acontece que dificilmente você conseguirá fazer com que [b:62e4c95358]Time = hora_alarme[/b:62e4c95358] devido os milessegundos.
Faça a comparação da seguinte forma:
Faça a comparação da seguinte forma:
if TimeToStr(Time) = TimeToStr(hora_alarme) then begin MessageDlg(´Teste´, mtWarning, [mbOK], 0); hora_alarme := Time + StrToTime(´00:00:05´); Label1.Caption := TimeToStr(hora_alarme); end;
GOSTEI 0
Massuda
19/08/2005
...uma rotina que fique comparando a hora do sistema com uma hora armazenada em uma variável...
Como você está comparando valores TDateTime (que são valores Double), o ideal é evitar testar igualdade, pois valores em ponto flutuante não possuem internamente representação exata. Experimente testar se já passou da hora do alarme...procedure TForm1.Timer1Timer(Sender: TObject); begin if Time >= hora_alarme then begin ...
GOSTEI 0
Marcio.theis
19/08/2005
declare uma variável do tipo string;
hora_alarme: String;
hora_alarme: String;
procedure TForm1.FormCreate(Sender: TObject); begin hora_alarme:=TimeToStr(Time + StrToTime(´00:00:05´)); Label1.Caption:=hora_alarme; Timer1.Enabled:=True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin if TimeToStr(Time) = hora_alarme then begin MessageDlg(´Teste´, mtWarning, [mbOK], 0); hora_alarme:=TimeToStr(Time + StrToTime(´00:00:05´)); Label1.Caption:=hora_alarme; end; end;
GOSTEI 0
Vispo
19/08/2005
Galera valeu pelas dicas ai!!
Abraços!
Abraços!
GOSTEI 0