Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ejecucion dia y hora (https://www.clubdelphi.com/foros/showthread.php?t=75614)

petete2008 07-09-2011 14:28:26

Ejecucion dia y hora
 
estoy desarrollando un programador de tareas en delphi 7. La idea es programar que a una determinada hora todos los dias haga una copia de un fichero que tengo localizado en mi PC en una carpeta de un servidor dentro de la LAN.
Mi duda es como hago para saber cuando debo ejecutar la función programada ya que con el componente TTimer creo que no se puede hacer.

He pensado en poner un TTimer que se ejecute cada hora y comprueba la fecha y hora del sistema con la que tengo programada y en caso que coincida ejecute la función pero .....¿esto es óptimo? ¿es así como se haría? ¿no importa que un Ttimer este en ejecución indefinidamente?


Gracias.
Un saludo.

defcon1_es 08-09-2011 15:56:07

hola.
Yo uso el componente tJvClock, que simula un reloj con alarma, y (en mi caso) tiene las propiedades:
Código Delphi [-]
Visible := False;
AlarmEnabled := True;
AlarmHour := 1;
AlarmMinute := 0;
AlarmSecond := 0;

Se ejecuta el evento OnAlarm del componente (si la aplicación no se ha cerrado, obviamente)
todos los días a la 1 de la madrugada y actualiza la fecha de trabajo del programa
(y es que hay clientes que se dejan varios días el ordenador encendido con el programa funcionando :mad: )

En el evento OnAlarm, haces lo que consideres.

newtron 08-09-2011 16:11:50

No creo que tengas problema en usar un ttimer para lo que quieres hacer. Es más, si quieres que sea a diario lo único que tendrías que comprobar es la hora, cuando llegue a la hora deseada que salte y haga lo que desees.

Saludos

ecfisa 08-09-2011 17:07:27

Hola.

Aunque el componente que menciona defcon1_es quizá desarrolle mejor la tarea (no he trabajado con él), coincido con newtron que un TTimer serviría perfectamente.

Para que no caiga la performance de la aplicación por hacer mucho polling y no pasarse de largo por mucho tiempo podrías ajustar el intervalo del Timer a 15 minutos por ejemplo.

Cita:

¿no importa que un Ttimer este en ejecución indefinidamente?
No.

Saludos.

roman 08-09-2011 17:11:07

Ni siquiera es necesario tanto tiempo. Tengo una aplicación que consulta cada 30 segundos y no se nota para nada. Incluso podría ser menor el tiempo.

// Saludos

newtron 08-09-2011 17:54:24

Bueno, igual es una burrada lo que hago pero yo en el menú principal de mi aplicación tengo un timer que me va actualizando un reloj con la hora y no noto demora ninguna.

Casimiro Noteví 08-09-2011 17:58:20

Cita:

Empezado por newtron (Mensaje 411330)
Bueno, igual es una burrada lo que hago pero yo en el menú principal de mi aplicación tengo un timer que me va actualizando un reloj con la hora y no noto demora ninguna.

Igual, lo pongo en todos los programas, aunque uso el timer de las RX.

roman 08-09-2011 18:28:25

Tampoco creo que sea una burrada. El único problema estaría en que en cada evento OnTimer se realizara un proceso que consuma mucho tiempo. Pero incluso en mi aplicación, lo que se hace cada 30 segundos es una consulta a la base de datos, y aún así, no se nota.

// Saludos

petete2008 09-09-2011 15:03:21

Gracias por compartir vuestras experiencias.
Utilizaré el TTimer!!


La franja horaria es GMT +2. Ahora son las 09:37:27.

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