Hola, tengo una consulta "rara"... necesito poder detener un evento que se ejecuta al presionar un botón y es muy largo (dura al rededor de 6 minutos)... al apretar dicho botón comienzan a ejecutarse varias rutinas, procedimientos, funciones, etc, son unas cuantas, como les decía duran varios minutos. Para que no se cuelgue el programa y se puedan hacer algunas otras cosas o cambiar el cursor de lugar, etc, he puesto en varios lugares "application.procesmessage".
Así el programa funciona de maravillas, pero me gustaría tambien poder detenerlo al presionar un botón de cancelar o algo así...
Una posibilidad sería utilizar un flag boolean y activarlo al presionar cancelar, y chequear este flag que no esté seteado antes de entrar a cada funcion, el problema es que cada funcion tarda unos cuantos segundos, y no quiero tener que esperar tantos segundos para detener el ciclo, entonces esa forma no me sirve, e ir más hacia adentro de las funciones para hacer algo similar y "acortar" el tiempo ese, sería muy complicado, porque son funciones dentro de otras funciones. Espero ser claro, es dificil de explicar.
A alguien se le ocurre alguna idea? muchas gracias desde ya !
Adjunto un "esquema" del código:
Código Delphi
[-]
procedure TfrmPrincipal.btnAnalizarClick(Sender: TObject);
begin
if EST.Conectado then
begin
funcion1(...);
funcion2(...);
fDemora(...);
procedimiento1(...);
fDemora(...);
funcion3(...);
... etc, etc
end;
end;