Fórum Comparar duas horas diferentes #328218
29/08/2006
0
procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit4.text := timetostr(time);
if checkbox1.Checked then begin
if datetimepicker1.Time = time then showmessage(´aaa´);
end;
end;
Obs.: o checkbox1 está checado.
...fabinho
Curtir tópico
+ 0Posts
29/08/2006
Marco Salles
Acho voce precisa de um intervalo para isto ... este intervalo depende de como esta configurado a propriedade intervalo do seu Timer
[b:004a566887]Exemplo para Interval = 100 do Componente Timer1[/b:004a566887]
procedure TForm1.Timer1Timer(Sender: TObject); const Intervalo=0.000001; //valor que deve ser ajustado begin edit4.text := timetostr(time); if checkbox1.Checked then begin if (Frac(datetimepicker1.Time) + Intervalo > time)and (Frac(datetimepicker1.Time) - Intervalo < time) then showmessage(´aaa´); end;
P:S Para compara time com datetimepicker1.Time voce deve usar a parte fracionaria de datetimepicker1.Time
P:S voce poderia criar um componente com esta caracteirstica... Sugiro
tentar ler o artigo do micheus sobre um componente : ´Cronometro´ que talves voce possa adaptar para disparar um evento , para uma determinada Hora.. É bem fácil , é so seguir os principios
Boa sorte...
Gostei + 0
29/08/2006
Marco Salles
Acho voce precisa de um intervalo para isto ... este intervalo depende de como esta configurado a propriedade intervalo do seu Timer
[b:eb2c2b633f]Exemplo para Interval = 100 do Componente Timer1[/b:eb2c2b633f]
procedure TForm1.Timer1Timer(Sender: TObject); const Intervalo=0.000001; //valor que deve ser ajustado begin edit4.text := timetostr(time); if checkbox1.Checked then begin if (Frac(datetimepicker1.Time) + Intervalo > time)and (Frac(datetimepicker1.Time) - Intervalo < time) then showmessage(´aaa´); end;
P:S Para compara time com datetimepicker1.Time voce deve usar a parte fracionaria de datetimepicker1.Time
P:S voce poderia criar um componente com esta caracteirstica... Sugiro
tentar ler o artigo do micheus sobre um componente : ´Cronometro´ que talves voce possa adaptar para disparar um evento , para uma determinada Hora.. É bem fácil , é so seguir os principios
Boa sorte...
Gostei + 0
29/08/2006
...fabinho
const
Intervalo=0.000001; //valor que deve ser ajustado
[/quote:4cafe4f48d]
Obrigado, deu certo! Porém, ele disparava o evento duas vezes seguidas, então diminuí o intervalo acrecentando um zero. Assim, deu certinho.
intervalo = 0.0000001;
Muito obrigado pelo apoio, caro Marco.
Gostei + 0
29/08/2006
Marco Salles
melhor ainda é desabilitar o timer do Componente , quando satisfazer a condição... Pq que que tem que continuar com o teste ele não sera mais verdadeiro ?????
const Intervalo=0.000001; //valor que deve ser ajustado begin edit4.text := timetostr(time); if checkbox1.Checked then begin if (Frac(datetimepicker1.Time) + Intervalo > time)and (Frac(datetimepicker1.Time) - Intervalo < time) then begin Timer1.enabled:=False; //desabilita... oteste não é mais executado showmessage(´aaa´); end; end;
é claro que em outra situação , <depende da sua lógica> , voce habilita novamente o Timer....
[b:76f84322eb]mas melhor mesmo e fazer com componentes[/b:76f84322eb]-->>>
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)