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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-06-2006
Bauhaus1975 Bauhaus1975 is offline
Miembro
 
Registrado: may 2005
Ubicación: Málaga
Posts: 135
Poder: 20
Bauhaus1975 Va por buen camino
Unhappy Medir tiempo de ejecución usando Timer (Problemas)

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
        // Inicialización del cronómetro
        form1.set();
        // Llamada al proceso principal
        resultado := generarProceso([...]);
        // Paramos el cronómetro
        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;
// Pintar el reloj en el form
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.
Responder Con Cita
 



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
problemas en tiempo de ejecución Nelly Varios 4 05-04-2006 19:25:53
Problemas al tratar de crear varios componentes en tiempo de ejecucion ilichhernandez Conexión con bases de datos 2 13-11-2005 19:03:26
Cómo medir en unidades de tiempo? Gabriel2 Varios 2 31-10-2005 15:51:24
Problema con un Timer en tiempo de Ejecucion santiellupin OOP 4 15-05-2004 16:21:37
abrir BD mdb usando ADOconnections en tiempo de ejecución viajero2015 Conexión con bases de datos 3 25-09-2003 01:39:05


La franja horaria es GMT +2. Ahora son las 13:03:41.


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