Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   objeto timer (https://www.clubdelphi.com/foros/showthread.php?t=30758)

Carliviris 17-04-2006 22:18:29

objeto timer
 
como puedo realizar una accion o un evento con el objeto timer?
me explico, lo que deseo hacer es, que despues de una fecha determinada, por ejemplo de hoy a un mes, me realice una accion o me llame una funcion el programa solo.

me entienden??
alguien me ayuda?

alapaco 17-04-2006 22:21:16

Tenes que guardar esa información en algun lado...un archivo, una base de datos, la registry...etc...

Carliviris 17-04-2006 22:25:05

si pero yo no se usar el objeto timer
como hago que la accion se ejecute sola despues de un tiempo determinado?
claro se que tengo que ir guardando

alapaco 17-04-2006 22:34:15

En el único evento que tiene el timer vas preguntado si la fecha actual es mayor o igual que la fecha en que queres que ocurra tal evento, si es asi pones la propiedad Enabled del TTimer en False y ejecutas la acción que querias ejecutar.

Podes poner la propiedad Interval en digamos 60000.-

Carliviris 17-04-2006 22:38:27

voy intentar hacerlo ahora y te comunico el resultado
muchas gracias

Sotrono 17-04-2006 22:38:39

Hola, en el Timer tenes que establecer el intervalo que quieras y despues en el evento OnTimer vas chequeando si estas dentro de los "margenes de accion" :confused: . Si es así, llama a la otra aplicacion o hace lo que vos quieras.
Para manejar la fecha utiliza el procedimiento DecodeDate:
Código Delphi [-]
DecodeDate( Date, Anio, Mes, Dia );

Con el parámetro Date le estas pasando la fecha actual, el procedimiento te va a devolver el año, el numero de mes y día en las variables correspondientes.
Bueno, y despues de ahi tenés que hacer que se fije si esta dentro del margen de dias y si es asi hacer lo que quieras:
Código Delphi [-]
if (Mes = 4) and (Dia in [1..15]) then
  ShowMessage('Hace lo que quieras');

Bueno, espero que te haya servido.

Bytes..

Carliviris 17-04-2006 22:45:34

voy a intentarlo tambien
mil gracias

Carliviris 17-04-2006 22:50:13

la propiedad intervalo vendrian siendo los segundos??

Sotrono 17-04-2006 22:52:44

Cita:

Empezado por Carliviris
la propiedad intervalo vendrian siendo los segundos??

Milisegundos.

alapaco 17-04-2006 22:53:00

Los milisegundos. Fijate que la ayuda de Delphi lo explica bien.

Carliviris 18-04-2006 00:38:21

intente todo lo que uds me dijeron y no me ha funcionado.
Lo que utilice para ejemplo fue un decodetime que me devuelve el tiempo actual.Esto lo hice en el formshow:

Código Delphi [-]
 DecodeTime(Date,horita,minutos,segundos,mili);

y luego puse esto en el ontimer :

Código Delphi [-]
 if (horita = 6) and (minutos = 32) then
      begin
      Enabled := false;
      ShowMessage('esta vaina funciona');
    end;

y llegado el momento de las 6 horas y los 32 minutos no me salio el mensaje esperado. No se si estoy haciendo algo incorrecto.

Que creen ustedes??

Carliviris 18-04-2006 00:39:00

El timer otra vez
 
intente todo lo que uds me dijeron y no me ha funcionado.
Lo que utilice para ejemplo fue un decodetime que me devuelve el tiempo actual.Esto lo hice en el formshow:

Código Delphi [-]
 DecodeTime(Date,horita,minutos,segundos,mili);

y luego puse esto en el ontimer :

Código Delphi [-]
 if (horita = 6) and (minutos = 32) then
      begin
      Enabled := false;
      ShowMessage('esta vaina funciona');
    end;

y llegado el momento de las 6 horas y los 32 minutos no me salio el mensaje esperado. No se si estoy haciendo algo incorrecto.

Que creen ustedes??

Carliviris 18-04-2006 00:51:19

no hay nadie que pueda darme una mano??
pleaseee

Sotrono 18-04-2006 00:53:33

DecodeTime lo tenes que poner dentro del evento del Timer, porque sino las variables horita y minutos siempre van a tener el valor de cuando se inició la aplicación y no se van a modificar en ningun momento.

Sotrono 18-04-2006 00:56:40

Cita:

Empezado por Calviris
no hay nadie que pueda darme una mano??
pleaseee

Tranquilo, solo pasaron 12 minutos. No estamos todo el tiempo pendientes a ver si publican una respuesta o no.

Carliviris 18-04-2006 00:58:38

como kiera man
no me tira el mensaje esperado.
puede ser que algun valor este obstruyendo el proceso?
podria ser el intervalo?

Sotrono 18-04-2006 01:10:43

La propiedad Enabled del Timer esta en true?

Carliviris 18-04-2006 01:12:57

yeah, esta en true por defecto

Sotrono 18-04-2006 01:22:47

El problema es que a DecodeTime le estas pasando como parametro la fecha (Date) en lugar de la hora (Time).
Date te devuelve la fecha.
Time la hora.
Now la fecha y la hora juntos.
Lo tendrias que hacer asi:

Código Delphi [-]
DecodeTime(Time,horita,minutos,segundos,mili);

Carliviris 18-04-2006 01:24:36

amigos, tengo que irme, seguire intentando en mi casa a ver de que manera podria resultar.

si algunos de uds logran dar con la solucion, por favor publiquenla aqui en este tema para ver si puedo continuar con la realizacion de mi sistema.

mil gracias a todos por sus atenciones y por aportar sus conocimientos
nos veremos manana


La franja horaria es GMT +2. Ahora son las 23:56:43.

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