PDA

Ver la Versión Completa : Timer


kao
26-06-2003, 19:20:07
Hola, necesito ayuda, tengo que guardar en una tabla los minutos que van transcurriendo, por lo que estoy tratando de usar un timer, para estar comparando cada minuto los campos de la tabla y mandar un mensaje al llegar a X, pero no puedo :confused: Podrian ayudarme?
Gracias

madriles
26-06-2003, 20:28:04
bueno puedes utilizar una variable publica llamada por ejemplo Control ( integer). en alguna parte del programa inicializas el reloj

Timer1.Enabled := True;
Control:=0;

luego utiliza el evento OnTimer

procedure TForm1.Timer1Timer(Sender: TObject);
begin
control:=control+1;
//al llegar a un minuto
if control = 60 then
begin
//haces lo que quieras con las tablas y vuelves el contador a cero
control:=0;
end;
end;

espero que te sirva de ayuda

jhonny
26-06-2003, 20:28:33
Holap, la verdad esque nos gustaria que nos dieras mas
detalles, pero segun lo que alcanzo a captar...

necesitas hacer algo cuando llegue al minuto x...

entonces hay una omision logica que nos a ocurrido a muchos en
estos casos...tal vez estas dando la instruccion asi:

if tiempo=X then

pero eso esta mal debe ser algo asi:

if tiempo>=X then


espero que yo no este dibagando solamente, tratando de entrar
en tus zapatos...espero te sirva
;)

Veo que madriles se me ha adelantado:cool:

kao
26-06-2003, 20:33:16
:D Gracias, eso es en parte lo que necesitaba, pero tambien necesito saber como trabajar la tabla, o sea, como estraigo el dato, y como lo vuelvo a guardar, pero incrementado

madriles
27-06-2003, 18:57:25
como te comenta jhonny, se necesita saber un poco mas exactamente que es lo que tienes y lo que quieres hacer, por ejemplo, aventurando.. puedo suponer que en tu tabla tienes un campo tiempo ( integer ) y si tiempo es X presentas en pantalla el valor de otro campo llamado... Resultado.

entonces puedes poner, siguiendo con mi ejemplo

Table1.FindNearest([Control]);

por lo que te aparecera en pantalla, en un TDBEdit el primer resultado de tu tabla que cumpla el valor de tiempo.

de todas formas esto es un poco elucubrar lo mejor es que nos dijas lo mejor posible que es lo que pretendes hacer para no andar a ciegas y solucionartelo lo mejor posible
un saludo

PD insiste con tus preguntas, que para eso estamos

kao
30-06-2003, 18:51:43
gracias madriles y jhonny, pero sigo teniendo un problema, cuando ejecuto elquery y el tiempo llega a 60, me manda un mensaje de error que dice : "Dataset table1 not on Edit or Insert mode", y en el codigo tengo antes que nada

table1.Edit;


A que se debe este error? :confused:

delphi.com.ar
30-06-2003, 19:02:53
Precisamente te da ese error, porque estás intentando modificar el valor de un campo ANTES del DataSet.Edit.

Te recomiendo leer la ayuda de los temas:


TDataSet.Edit
TDataSet.Insert
TDataSet.Post
TDataSet.State


Debes tener un problema de "sincronía" en la ejecución de tus procesos, te recomiendo poner un BreakPoint en el Edit y otro en el Post, y te darás cuenta que llega a modificar el campo en estado Browse.

Saludos!