Ver Mensaje Individual
  #3  
Antiguo 29-09-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Completando un poco lo que te indica Al González, para lograr el efecto de pausar el ciclo y luego
continuar podrías intentar algo como esto:

Código:
var
  I: Integer;

begin
  Pausa := false;

  for I := 1 to 50000 do
  begin
    while Pausa do
      Application.ProcessMessages;

    { Aquí el proceso que realices }

    Application.ProcessMessages;
  end;
end;
Pausa sería una variable en tu formulario que inicializas a false al comienzo del ciclo for de manera
que el ciclo while no se ejecuta.

El segundo ProcessMessages permite procesar otros eventos. Uno de ellos podría ser el click de un botón
"Pausa" en donde pones la variable Pausa a true. Esto hará que la condición del ciclo while sea cierta y,
como verás, es un ciclo que no terminará mientras Pausa sea true de manera que el ciclo for queda
"suspendido".

El ProcessMessages dentro del ciclo while permitirá que se sigan procesando los mensajes, por ejemplo el
click de un botón "Continuar" en donde pondrías la variable Pausa a false haciendo que el ciclo while
termine y continúe el ciclo for.


Por otra parte, pienso que una solución "más seria" y sólida sería utilizar threads para ejecutar lo que
haces dentro del ciclo for.


// Saludos

Última edición por roman fecha: 29-09-2003 a las 04:28:07.
Responder Con Cita