Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-12-2009
jerosol jerosol is offline
Miembro
 
Registrado: nov 2006
Posts: 21
Poder: 0
jerosol Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 01-12-2009
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
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
__________________
Rafita.
Responder Con Cita
  #3  
Antiguo 01-12-2009
jerosol jerosol is offline
Miembro
 
Registrado: nov 2006
Posts: 21
Poder: 0
jerosol Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 01-12-2009
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
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,
__________________
Rafita.
Responder Con Cita
  #5  
Antiguo 01-12-2009
jerosol jerosol is offline
Miembro
 
Registrado: nov 2006
Posts: 21
Poder: 0
jerosol Va por buen camino
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

Última edición por jerosol fecha: 01-12-2009 a las 20:53:51.
Responder Con Cita
  #6  
Antiguo 01-12-2009
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
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
__________________
Siempre Novato

Última edición por Caral fecha: 10-01-2010 a las 01:20:33.
Responder Con Cita
  #7  
Antiguo 02-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por jerosol Ver Mensaje
Sabrias decirme xq el "if" no funciona:
El problema es que tal vez estás afinando demasiado. Es decir, el Time (la función) devuelve hora, minutos, segundos y milisegundos. Algo así, por poner un ejemplo:
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.
  • HoursBetween
  • MinutesBetween
  • SecondsBetween
  • ...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 24-12-2009
jerosol jerosol is offline
Miembro
 
Registrado: nov 2006
Posts: 21
Poder: 0
jerosol Va por buen camino
gracias a todos me habeis sido de ayuda
feliz navidad
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
obtener solo la fecha en formato fecha y sin hora BlueSteel SQL 14 09-05-2008 16:42:19
formato fecha y hora a solo Fecha ozegarra Firebird e Interbase 6 22-02-2008 18:43:34
Extraccion fecha de un campo fecha y hora matti Firebird e Interbase 3 26-04-2007 19:48:11
fecha y hora i_berbeu C++ Builder 7 20-09-2005 23:07:08
Fecha y Hora anitra_cattivo Varios 5 13-04-2005 20:12:37


La franja horaria es GMT +2. Ahora son las 18:33:17.


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
Copyright 1996-2007 Club Delphi