FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Mantener un timer ejecutandose cada minuto dentro de la aplicacion
Hola compañeros, estoy haciendo una aplicación que contiene un formulario de recordatorios, el caso es que quiero que me revise cada minuto la tabla de recordatorios para verificar si existe algun evento más próximo, si lo encuentra me lo muestra, no importando en qué formulario de la aplicación esté ubicado.
Alguien sabe cómo puedo hacer esto Gracias y saludos |
#2
|
||||
|
||||
El componente Timer tiene una propiedad numerica que se llama Interval la cual define el intervalo de tiempo que el Timer debe ejecutar la accion de su unico evento OnTimer, esta propiedad esta dada en milisegundo, es decir
1 segundo=1000 Milisegundo. Por ejemplo si quisiera se ejecute la accion cada minuto(aunque no es muy exacto pero vale) solo debo hacer la siguiente regla de tres simple: Si 1 Segundo=1000 Milisegundo entonces 60 segundos(osea un minuto) sera equivalente a X milisegundo: Haciendo los calculos: X=60*1000; Entonces concluimos que para que el Timer ejecute una determinada accion cada minuto, se debe poner su propiedad Interval=60000. Saludos.....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Última edición por rgstuamigo fecha: 14-04-2009 a las 21:26:44. |
#3
|
||||
|
||||
Ojo
Se me olvido comentarles por que no es muy exacto la ejecucion de un timer
que se pone a un determinado intervalo: La razon es, como un Timer es un hilo y por ende es un proceso para el Planificador del Sistema Operatimo por tal motivo recibe tambien un Quantum(tiempo de ejecusion) por estar trabajando en sistemas Operativos multitarea y multiproceso, puede ocurrir el caso que nuestro Timer ya le tocara en tiempo real la ejecucion de su evento OnTimer pero el Sistema operativo no le ha dado Quantum (no es su turno)es decir otro proceso esta haciendo el uso de la CPU y ya cuando le toca su turno se retraso en el tiempo real que debiera realizar su evento. Es por ese motivo que se retrasaria en puequeños nanosegundos,milisegundos (claro en intervalos pequeños no se siente mucho la diferencia)su ejecucion que a la larga seria horas y esto se complica mucho mas si tenemos muchos programas habiertos. Edito: Aqui tienen algo para profundizar el tema Espero haberme explicado..... Abrazos a todos... RGS
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Última edición por rgstuamigo fecha: 16-03-2009 a las 23:28:54. |
#4
|
||||
|
||||
Hombre, entiendo tu preocupación por la exactitud y es bueno que lo aclares, pero no creo que unos cuantos nanosegundos afecten para el recordatorio de una cita. Y es que no me queda claro por qué comentas que, a la larga la diferencia sería de horas. No creo que esto afecte para el problema en cuestión. El timer se activará, más o menos, cada minuto, y se reiniciará la cuenta, con lo cual no importan ya los milisegundos acumulados hasta el momento.
¿O hay algo que no estoy viendo? // Saludos |
#5
|
||||
|
||||
tal vez si te hicieras un procedure...
sip...
a lo mejor si hechas a andar un procedimiento se resuelve tu problema... si utilizas los milisegundos checa en la ayuda que trae delphi... y veras... oarece que la abreviatura que utiliza es msecs... haber si en algo te sirve este procedimiento:
y la mandas llamar asi en milisegundos:
sele pues y espero y te sirva!!! saludos !!!
__________________
el cielo me dio un cariño sin merecerlo... chimikuilo!!! Última edición por krlox31416 fecha: 17-03-2009 a las 05:00:23. Razón: me faltava una h al |
#6
|
||||
|
||||
Cita:
Ahora aplicando esa misma logica y conociendo un poquito del planificador del sistema operativo, deducimos que puede pasar lo mismo ,"claro ustedes diranpequeños nanosegundos",esos pequenas fraccionesde segundos se pueden convertir en horas como lo he ilustrado con el ejemplo.Quisas a algunos diran que importa eso, bueno eso es depende de lo que se quiera hacer,y depende de cada uno; yo solo quise hacer una pequeñita aclaracion. Un gran saludos a todos.... RGS
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#7
|
||||
|
||||
De lo que tú hablas es de una acumulación de errores, pero aquí eso no importa porque la cuenta se reinicia en cada vuelta del timer. Dicho de otra forma, el timer no se usa para llevar la cuenta de la hora de las citas sino para comparar, cada tanto tiempo, la hora actual del reloj de la computadora con la hora de las citas.
// Saludos |
#8
|
||||
|
||||
Me temo que no me has entendido
Creo que no me has entendido amigo Roman, lo que trato o traté de explicar es como el planificador del sistema oprativo ,planifica que proceso va hacer uso de la CPU, es decir existe una politica de planificacion implementada en el sistema Operativo y como el Timer es un subproceso,igualmente es planificado como proceso, es decir resive un tiempo en el cual el planificador del sistema operativo le permite hacer uso de la CPU,y como explique anteriromente puede ocurrir que pasó su tiempo que realmente debiera ejecutar su accion por que hay otro proceso ocupando la CPU,claro en realidad a ciencia cierta el humano no lo puede persibir porque son nanosegundos o milisegundos,pero a la larga esas fracciones de tiempo suman,Desde luego en realidad existen muchas politicas de planificacion de procesos como ejemplo Round Robin , FIFO,LIFO,CFS,etc.Ahora habria que ver cuales de estos algoritmos utiliza Windows,pero eso ya otro tema.
Saludos....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#9
|
||||
|
||||
Sí, sí, todo eso ya lo sé. Pero insisto en que no tiene nada que ver con lo que aquí hablamos. Repito: la acumulación de errores aquí no importa porque la cuenta se reinicia cada vez. Reiniciar es la palabra clave.
// Saludos |
#10
|
||||
|
||||
Cita:
Es decir como el timer se reinicia internamente,entonces con relacion al tiempo real que debiera salir el aviso variaria en pequeñas fracciones de tiempo. Desde luego no vamos a polemizar el tema, como algunos dicen ni si quiera el interesado se manifiesta.. . Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#11
|
|||
|
|||
Gracias por sus comentarios ..
|
#12
|
|||
|
|||
Problema al abrir la tabla dentro del timer
Hola chicos, ps implemente lo del timer cada segundo interval=1000 el k viene por defecto, pero el problema esk tengo que abrir la tabla y revisar si hay registros que coincidan con la fecha y hora actual, pero en donde implemento este timer es un formulario que tiene 4 check box, para k el usuario elija la opcion a la que kiere acceder, hago lo siguiente en el ontimer, pero no me permite acceder a ninguna opcion de los checkbox del formulario, no me keda mas k ponerle run-program reset.
Espero k me puedan ayudar, ya le he intentado de varias maneras y nada.. Gracias |
#13
|
||||
|
||||
¿donde avanzas o retrocedes de registros en el bucle while?
Si se encuentra un registro, se edita y se borra (no sé para qué pero bueno... eso es otra historia), el tema es que al borrar sí se avanza en los registros del adotable, pero si no entra en el locate, tienes un bucle infinito. ...creo!
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#14
|
|||
|
|||
mmm gracias por la idea, revisare ese detalle..
|
#15
|
|||
|
|||
Problema resuelto [Lepe], gracias, sí era eso, entraba a un bucle infinito
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mantener viva la aplicación | HombreGordo | Varios | 9 | 04-11-2008 20:57:24 |
quitar icono un lado del reloj, sin desactivar aplicacion ejecutandose | sakuragi | Windows | 7 | 16-01-2008 17:27:49 |
mantener mi aplicacion selecionada | perico | OOP | 9 | 27-04-2006 01:16:29 |
esta ejecutandose una aplicacion en NT? | jmbarrio | API de Windows | 5 | 13-01-2005 10:49:04 |
Aplicación ejecutándose en ordenador remoto | Javi2 | Varios | 0 | 27-07-2004 14:29:56 |
|