Alarma fecha hora
Alguien podria decirme como hacer para que suene una alarma o de un mensaje a una hora y fecha guardados en una tabla
|
Hola,
Una cosa que se me ocurre es utilizar un control TTimer. Tiene una propiedad Interval cuyo valor va en milisegundos. Fijas la hora de la alarma en algún componente, por ejemplo un DateTimePicker. Entonces calcular los milisegundos existentes entre la hora actual y la hora de alarma, y los guardas en la propiedad Interval de TTimer, y activas el temporizador. En el único evento del temporizador debes poner las acciones que deseas hacer (guardar el aviso en la tabla) y desactiva el temporizador. Saludos |
Esta solucion se puede aplicar para varios regitros de la tabla.
Lo q e intentado a sido comparar la fecha y la hora almacenada en la tabla con las fecha y hora del sistema (date y time) pero no se xq no salta |
Vaya, creo que no había entendido bien tu problema.
Veamos, tienes una tabla con varias horas de alarma, puedes ordenarla en orden ascendente. Por cada registro con la hora POSTERIOR a la actual calculas los milisegundos de diferencia con respecto a la hora actual. Asignas esos milisegundos a la propiedad Interval de un TTimer y lo activas. En el evento OnTimer haces que suene la alarma y pasas a procesar el siguiente registro de la tabla. Otra posibilidad es tener varios componentes TTimer (los puedes generar en tiempo de ejecución según el número de registros de tu tabla), así cada uno de estos temporizadores tendrá un funcionamiento autónomo e independiente. Saludos, |
Sabrias decirme xq el "if" no funciona:
if (DateTimePicker1.Time=time) and (DateTimePicker1.date=date)then showmessage(datetostr(DateTimePicker1.date) + ' '+ timetostr(DateTimePicker1.Time) +' '+ datetostr(date)+' '+ timetostr(Time ) ); si el showmessage sale muestra el resutado bien gracias por todo |
Hola
Un pequeño ejemplo con Fecha. Busca la fecha con el DateTimePicker y si coincide con el de la BD (DBEdit) mostrara un mensaje con sonido. Saludos |
Cita:
12:00:00:123 El problema es que si comparas esto con el Time de la Base de datos, no te dará True a no ser que coincida incluyendo las milésimas, cosa difícil. Lo que se podría hacer es almacenar la hora "capando" el valor de milésimas, y lo mismo al consultar el Time (modificándolo para eliminar las milésimas) y dejarlo tal que así: 12:00:00:000 Aun así piensa que deberás ajustar hasta el segundo. Otra opción (la que creo yo más recomendable) el comparar las horas contando un Delta de diferencia. Es decir, que las considere iguales si la diferencia es menor de 3 segundos (por ejemlo). Para eso puedes utilizar las funciones que calculan diferencia entre fechas/horas.
|
gracias a todos me habeis sido de ayuda
feliz navidad |
La franja horaria es GMT +2. Ahora son las 21:56:32. |
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