Ver Mensaje Individual
  #2  
Antiguo 25-02-2015
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Prueba movieno la línea Application.ProcessMessages
Será mas lento, pues por cada iteración del bucle (100.000 veces) debe verificar si hay mensajes pendientes de procesar.

Código Delphi [-]
var i, j : integer;
begin
  pgbfile.Min := 1;
  pgbfile.Max := 100000;
  for j := 1 To 5 do
  begin
    for I := 1 To 100000 do
    begin
      pgbfile.Position := I;
      Application.ProcessMessages;
    end;
    sleep(1000);
  end;
  showmessage( 'fin');
end;

Puedes mejorar el rendimiento si ejecutas esta línea solo cada n pasadas.

Código Delphi [-]
    for I := 1 To 100000 do
    begin
      pgbfile.Position := I;
      // Solo procesa esto cada 1000 iteraciones del bucle
      if (I mod 1000 = 0) then
         Application.ProcessMessages;
    end;
Responder Con Cita