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.