Ver Mensaje Individual
  #1  
Antiguo 28-08-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Reputación: 21
gluglu Va por buen camino
Como abortar correctamente un proceso que es interrumpido por el cierre del Form

Hola amig@s !

En el OnActivate de un Form llamo a un proceso que tarda algunos segundos en generar la pantalla que quiero mostrar.

Código Delphi [-]
procedure TForm.FormActivate(Sender: TObject);
begin
  Self.OnActivate := nil;
  FormRepaint;
end;

Si el usuario, durante dicho proceso FormRepaint, hace click para cerrar el Form, de manera inmediata se llama a la rutina FormClose.

Código Delphi [-]
procedure TFormMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  FormMain := nil;
end;

pero me he dado cuenta que al finalizar FormClose, prosigue con FormRepaint en el punto en el cual se interrumpió por el cierre del Form.

Y finalmente, entre otras cosas, FormMain no queda a Nil.

Como puedo entonces abortar correctamente FormRepaint dentro del proceso FormClose ?? O como se solucionaría esta problemática de la manera correcta ?

He intentado meter toda el código de FormRepaint en un Try Except pero a pesar de ello no me produce ninguna excepción y por lo tanto no sale del bucle Try, prosiguiendo como indica antes en el mismo punto en donde se interrumpió por la llamada a FormClose.

Gracias por vuestra ayuda.
__________________
Piensa siempre en positivo !
Responder Con Cita