Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   "atrapar" la ejecución de un procedimiento (https://www.clubdelphi.com/foros/showthread.php?t=30744)

jorgesl 17-04-2006 17:10:15

"atrapar" la ejecución de un procedimiento
 
Hola amigos foreros.

SIguiendo con mi módulo de ordenamiento...
Tengo un procedimiento que realiza algo así como un ordenamiento de burbuja. Ese procedimiento, tarda bastante tiempo en ejecutarse (aprox 30 min) y me gustaría que el usuario pudiera cancelar su ejecución mediante un boton.

Que al dar click mandara un cuadro de dailogo adviertiendo que se cancelará la operación y al acepratlo, que la ejecución de la función termine.

Pero no tengo idea de como hacerlo.

Alguien me puede ayudar con eso?

Gracias

alapaco 17-04-2006 17:18:53

Si estas dentro de un ciclo (while, for, repeat) podes crear una variable global (FCancel) en valor False y en el boton Cancelar de tu formulario agregas:

if Application.MessageBox('¿ Realmente desea cancelar el proceso ?', 'Advertencia', MB_YESNO) = idYes then
FCancel := True;

Y dentro del ciclo pones algo así como:

while (<< lo que estabas preguntando >>) and (not FCancel) do
bla...bla...

Bicho 17-04-2006 19:39:10

Sólo un apunte, añade en algún punto del bucle lo siguiente:
Código Delphi [-]
Application.Processmessages;

Para que así el programa atienda a tús eventos (hacer clic sobre elo botón de cancelar) y para que no se te congele la aplicación.

Saludos


La franja horaria es GMT +2. Ahora son las 17:34:53.

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