Hola a todos, les comento mi nuevo problema
(Trabajo con Windows2000 y Delphi6)
Tengo en un procedimiento un proceso que tarda mucho en ejecutarse y necesito medir el tiempo de ejecución de dicho proceso. Para ello he añadido un TTimer y un par de procedimientos 'set' y 'end'. El primero se encarga de activar el Timer (Timer.Enabled=true) lo llamo justo antes de la llamada al proceso principal y el segundo justo cuando termina y se encarga de desactivar el Timer.
He puesto unos label en el formulario de tal forma que cada segundo el evento del 'Timer' del timer me pinta el reloj, que avanza segundo a segundo.
Todo esto funciona OK, el problema es cuando se llama al proceso principal que se apodera de la ejecución y el contador ¡no funciona!
También he probado a iniciar el cronómetro por un botón y luego invocar al procedimiento, en cuanto que empieza el éste, el crono deja de funcionar.
¿Alguien sabe como hacer para que ambos procesos puedan funcionar y el contador me cuente el tiempo de cómputo del proceso principal?
Adjunto un esquema de los procedimientos
Código Delphi
[-]
procedure Tform1.inicio();
begin
form1.set();
resultado := generarProceso([...]);
form1.end();
end;
procedure Tform1.set();
begin
segundos:=0;minutos:=0;horas:=0;dias:=0;
form1.Timer1.Interval := 1000;
form1.Timer1.Enabled := true;
end;
procedure Tform1.end();
begin
form1.Timer1.Enabled := false;
end;
procedure Tform1.Timer1Timer(Sender: TObject);
begin
segundos := segundos + 1;
if (segundos > 59) then
begin
segundos := 0;
minutos := minutos + 1;
if (minutos > 59) then
begin
minutos := 0;
horas := horas + 1;
if (horas > 23) then
begin
horas := 0;
dias := dias + 1;
end;
end;
end;
form1.lbSegundos.Caption := inttostr(segundos);
form1.lbMinutos.Caption := inttostr(minutos);
form1.lbHoras.Caption := inttostr(horas);
form1.lbDias.Caption := inttostr(dias);
end;
Muchas gracias y un saludo.