Foros Club Delphi

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

nenufer 09-05-2006 18:44:52

Timer
 
hola a tod@s!! Es la 1º vez q utilizo este componente(TTimer) y he buscado en el foro y vamos creo que no he encontrado nada a mi solucion o eso creo yo. :confused:
kiero q pasados 30 segundos se llame a un procedimiento.
Leo el intervalo desd un archivo .ini y no se como preguntar si ha pasado el tiempo. El timer lo pongo a true y le asigno la vble que leo del .ini para la propiedad interval, en el oncreate donde inicializo otros componentes.
Puede ser una pregunta muy chorra, pero es que no se como hacerlo.
Si alguien puede ayudarme muxisimas gracias!!!

waltergomez 09-05-2006 19:04:27

Bien, ahora usa el evento OnTimer del TTimer.

Saludos,

Barok 10-05-2006 02:53:42

Creo que esto te puede servir:

Código Delphi [-]procedure TForm1.Create(Sender: TObject);
var
T: TIniFile;
Begin
T := TIniFile.create('Nombre del archivo');
Timer1.Interval := T.ReadInteger('NombreDeLaSintaxis(:confused:)', 'Identificador','Default');
Timer1.Enabled := true;
end;

procedure Timer1.OnTimer(Sender: TObject);
begin
ShowMessage('Hola');
Button1.Click//Llama al procedure del boton 1 al hacer click
end;

nenufer 10-05-2006 09:34:53

Gracias por contestar. Mi problema era q no sabia q poner en el ontimer. Gracias ya veo que era muy sencillo. Pero ahora tengo un pequeño problema.
A ver, estoy replicando una tabla y quiero que cuando pasen 30 segundos todos los registros que tenga se inserten en la tabla destino. Si pongo:
Código Delphi [-]
  
procedure TDM.TTimerTimer(Sender: TObject);
begin   
 messagedlg('Se va a lanzar la replicacion',mtInformation,[mbYes],0);
 Form1.LanzarReplica();
end;

todo funciona bien. Pero cuando la tabla no tiene nada tambien muestra el mensaje, y no quiero que lo haga. Entonces hago lo siguiente:
Código Delphi [-]
 
procedure TDM.TTimerTimer(Sender: TObject);
begin   
 if not Tabla.IsEmpty then
    begin
      messagedlg('Se va a lanzar la replicacion',mtInformation,[mbYes],0);
      LanzarReplica();
    end
end;

y cuando ejecuto si la tabla tiene algo lo hace todo, pero cuando ya no tiene nada pues no pasa por la condicion, que es lo que yo quiero. Pero si introduzco algo en la tabla no entra. Porque hace eso si la tabla no esta vacia? Todo esto en ejecucion.
Espero que me entendais, sino lo intentare hacerlo mejor
Gracias

Barok 10-05-2006 15:48:18

Lo que deseas hacer es agregar datos a un TTable?
Otra opcion que tienes para cuando los datos son nulos osea que no hay es
Código Delphi [-]
...
try
messagedlg('Se va a lanzar la replicacion',mtInformation,[mbYes],0);
 Form1.LanzarReplica();...
on E: Exception do ShowMessage('No se han podido replicar los datos!');
end;

Barok 10-05-2006 15:55:40

Lo que quieres hacer tu es meter un dato en una tabla?(TTable)

Dragon 10-05-2006 16:18:31

Creo que lo que te pasa es que no estas trabajando bien con la variable que controla el tiempo de los 30 seg, si la tabla tiene algun dato y estas contando los 30 segundos seguro que va a funcionar bien pero despues de que funcione la tabla queda vacia, luego introduces más datos en la tabla pero la variable que controla el tiempo ya paso de 30 segundos y ese debe ser el problema, sabiendo esto ya no derias tener problemás para arreglar el codigo de forma que esta varialble se haga cero y cuando la tabla tome valores empiesas a contar de nuevo 30 seg.

Es pocible que tengas que usar dos TTimer para que uno active al otro cada 30 seg.

nenufer 10-05-2006 16:35:17

Gracias por contestar!!! Es mas simple de lo que yo creia. El timer funcionaba bien. Lo que pasa es que como no refrescaba la tabla antes del if, no tenia los datos nuevos en la tabla y por eso nunca entraba en el if.
Gracias :)


La franja horaria es GMT +2. Ahora son las 03:19:56.

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