Delphi - Manejo de hora

 
Vista:

Manejo de hora

Publicado por MAKZ (43 intervenciones) el 28/12/2000 00:00:00
En un programa tengo una variable llamada alarma de tipo Tdatetime y otra llamada off de tipo boolean y lo que sucede es que alarma va a almacenar una hora determinada y quiero que cuando sea esa hora el programa ejecute una accion pero el problema es que solo la ejecuta cuando le indico que lo haga si la hora actual es mayor que la hora almacenada en la variable alarma y se le indico que ejecute esa accion cuando la hora sea igual a la almacenada no hace nada en si el codigo es este:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (alarma < time) and (off=false) then
begin
..........
end;

pero si pongo:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (alarma = time) and (off=false) then
begin
...
end;

no hace nada.

Si alguien sabe como puedo resolver este problema por favor digame.
gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Manejo de hora

Publicado por Osvaldo (8 intervenciones) el 29/12/2000 00:00:00
Pues bien. Lo mas adecuado es que tu programa tenga la condicion:

(alarma <= time)

La variables de tipo TDateTime almacenan el tiempo con una presicion bastante alta. Supon que tu variable alarma tiene la 19:10:35 ( osea cero decimas de segundo ). La funccion Time te retorna las decimas de segundo ( 19:10:35.046 ) por lo que es muy dificil que estos valores coincidan exactamente. Por eso la mejor comparacion es la indicada arriba. Ademas si quieres disminuir el posible error entre la hora indicada en ´alarma´ y la hora de ejecucion el Timer debera tener una frecuencia baja ( no demasiado para que no consuma tantos recursos ).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar