Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Cada hora exacta que salte un evento (https://www.clubdelphi.com/foros/showthread.php?t=63269)

David 06-02-2009 09:47:19

Cada hora exacta que salte un evento
 
Hola

Tengo que ejecutar un evento cada hora exacta, ya tengo hecho el código, cada hora 10:00 las 11:00, las 12:00, la aplicación minimizada al lado del reloj se activa.

La manera que se me ocurre hacer esto es tener un timer, y que cada segundo compruebe si es o no la hora, si es la hora, salte el evento, pero no sé si hay otra manera mejor de hacerlo.

Por otro lado y relacionado con lo mismo, hay alguna función para que te diga si son los minutos 00, independientemente de al hora, me explico, las 10:00, las 11:00, es las 10 horas 0 minutos, pues quiero que me diga si es la X hora 0 minutos, también valdría si le pasas los parametros necesarios, si es la X hora 05 minutos, en el caso que el usuario desee adelantar o cambiar la hora.

Un saludo

Neftali [Germán.Estévez] 06-02-2009 10:04:49

Cita:

Empezado por David (Mensaje 337288)
Tengo que ejecutar un evento cada hora exacta, ya tengo hecho el código, cada hora 10:00 las 11:00, las 12:00, la aplicación minimizada al lado del reloj se activa.
La manera que se me ocurre hacer esto es tener un timer, y que cada segundo compruebe si es o no la hora, si es la hora, salte el evento, pero no sé si hay otra manera mejor de hacerlo.

Básicamente esa es la forma de hacerlo.
Yo en algun caso que he tenido que hacer algo similar, he utilizado 2 Timers, simplemente para no tener un Timer tan continuo.
Uso uno cada 500 ms y otro cada 45 sg.
El que tengo activo es el que salta cada 45 sg y cuando este llega al minuto 59, activo el tmer 2 (cada 500 ms), cuando he hecho lo que toca a la hora exacta, vuelvo a desactivar el segundo (cada 500 ms) y dejoa activo el primero (cada 45 sg); Y así a eserar ala siguiente hora... :D

Cita:

Empezado por David (Mensaje 337288)
Por otro lado y relacionado con lo mismo, hay alguna función para que te diga si son los minutos 00, independientemente de al hora, me explico, las 10:00, las 11:00, es las 10 horas 0 minutos, pues quiero que me diga si es la X hora 0 minutos, también valdría si le pasas los parametros necesarios, si es la X hora 05 minutos, en el caso que el usuario desee adelantar o cambiar la hora.

Revisa todas las funciones de la unit DateUtils. Para lo que comentas tienes la función MinuteOf.
Deberías poder usarla así:

Código Delphi [-]
  if (MinuteOf(Now()) = 5) then begin
    ... minuto 5
  end;

defcon1_es 06-02-2009 12:53:32

Hola.
Pues yo uso un JvClock, que tiene las propiedades AlarmEnabled, AlarmHour, AlarmMinute y AlarmSecond, y el evento OnAlarm,
y me resulta más cómodo.

En ese evento, hago lo que tenga que hacer, y al final, incremento en 1 el valor de AlarmHour.


La franja horaria es GMT +2. Ahora son las 12:52:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi