![]() |
acción en el tiempo
Hola, me gustaría saber como puedo realizar una acción cada cierto tiempo, es decir, cada media hora, cada 1 hora, 1 al día, etc. Gracias.
|
Con un Timer, lo encontrarás en System. Le puedes poner el intervalo de tiempo que desees. :rolleyes:
|
me puedes poner un ejemplo??
|
Una opción fácil pero no "precisa" (hablamos de milisegundos a un par de segundos de diferencia), es usar el componente TTimer, que lo encontrás en la paleta System, como te ha dicho Lidia. Este TTimer tiene una propiedad Interval que indica en milisegundos cada cuánto se ejecutará el evento OnTimer. Te recomiendo leer la documentación del mismo para mas precisiones.
Saludos! |
Cita:
TTimer encapsula al timer del sistema operativo y tiene una precisión de 54 milisegundos aproximadamente, o unos 18 "ticks" por segundo en Win95, Win98 y Millenium. En XP "parece" que tiene una precisión mayor, por lo menos según lo que pude observar con intervalos de menos de 54 milisegundos. De todas formas, a menos que lo utilices para juegos y efectos gráficos animados, te será bastante útil. El inconveniente de usar timers más precisos (como el de DelphiX para juegos) es que también utilizan más recursos de cpu y generalmente no es recomendable usar más de un timer de este tipo en una misma aplicación. Otro detalle que tienes que considerar: Si el proceso iniciado en el evento "ontimer" tiene un consumo de tiempo de cpu de digamos: 1 segundo y el intervalo de Ttimer es 2 segundos, el siguiente "tick" ocurrirá después de 2 segundos luego que termine el proceso iniciado por el primer "tick", es decir que en lugar que el timer sólo espere 1 segundo esperará 2 segundos, lo que lo hace muy impreciso si el intervalo entre "ticks" es relativamente corto comparado al consumo de tiempo de cpu del proceso inciado por el "ontimer". Generalmente esto no sucede y el tiempo del intervalo de espera es muchísimo mayor al tiempo de proceso. |
No te he entendido muy bien, lo siento, ponme un ejemplo con lo siguiente, digamos que quiero que ejecutar esto: "dataset.refresh" cada media hora, como lo hago?
|
Cita:
// Saludos |
A ver... Si clickeas dos veces en el Timer te saldrá:
procedure TForm1.Timer1Timer(Sender: TObject); begin end; end. donde puedes meter todo lo que quieras que se ejecute cada el intervalo de tiempo que le hayas puesto. Si? :( |
Se me acaba de ocurrir una idea
¡Buen día a todos!
Así es. En el manejador del evento OnTimer puedes poner el código que desees que se ejecute cada determinado tiempo. Cita:
Código:
{ Intervalo de Refrescado cada 30 minutos } Un abrazo. ¡Hasta pronto! Al González :). |
Cita:
Puedes hacerlo mediante un objeto externo, que tenga enlazado un TDataSet y se encargue de refrescarlo.. Saludos! |
¡Buen día a todos!
Gracias Delphi.com.ar Si, en realidad hay muchas soluciones a la falta de herencia insertable. Pero ¡ah, cómo hace falta! ;). La libertad de poder conducir un auto potente sin necesidad de escoltas. ¿Me entiendes verdad? Al González :). |
La franja horaria es GMT +2. Ahora son las 09:58:58. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi