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 09-05-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Question 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.
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!!!
Responder Con Cita
  #2  
Antiguo 09-05-2006
Avatar de waltergomez
waltergomez waltergomez is offline
Miembro
 
Registrado: may 2006
Posts: 202
Poder: 19
waltergomez Va por buen camino
Bien, ahora usa el evento OnTimer del TTimer.

Saludos,
Responder Con Cita
  #3  
Antiguo 10-05-2006
Barok Barok is offline
Registrado
 
Registrado: ene 2006
Posts: 5
Poder: 0
Barok Va por buen camino
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()', '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;
Responder Con Cita
  #4  
Antiguo 10-05-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Question

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
Responder Con Cita
  #5  
Antiguo 10-05-2006
Barok Barok is offline
Registrado
 
Registrado: ene 2006
Posts: 5
Poder: 0
Barok Va por buen camino
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;

Última edición por Barok fecha: 10-05-2006 a las 15:57:32.
Responder Con Cita
  #6  
Antiguo 10-05-2006
Barok Barok is offline
Registrado
 
Registrado: ene 2006
Posts: 5
Poder: 0
Barok Va por buen camino
Lo que quieres hacer tu es meter un dato en una tabla?(TTable)
Responder Con Cita
  #7  
Antiguo 10-05-2006
Avatar de Dragon
Dragon Dragon is offline
Miembro
 
Registrado: dic 2004
Ubicación: Cuba, Ciudad de La Habana.
Posts: 19
Poder: 0
Dragon Va por buen camino
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.
__________________
Si tienes un problema no te preocupes, porque si tiene solucion no hay de que preocuparce y si no la tiene pues menos hay que preocuparce.(De Aristoteles).

Última edición por Dragon fecha: 10-05-2006 a las 16:58:19.
Responder Con Cita
  #8  
Antiguo 10-05-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Cool

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
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
Timer ojimenezg2000 Gráficos 10 27-04-2006 14:56:02
timer +1 slim jim Varios 4 02-10-2005 04:03:11
MessageDlg con timer ... ingel Varios 2 25-04-2005 18:02:41
Timer Malon OOP 5 25-11-2003 17:19:03
Timer kao Varios 6 30-06-2003 19:02:53


La franja horaria es GMT +2. Ahora son las 02:04:37.


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