Ver Mensaje Individual
  #11  
Antiguo 16-06-2008
tanaka_reina tanaka_reina is offline
Miembro
 
Registrado: jun 2008
Posts: 15
Reputación: 0
tanaka_reina Va por buen camino
Cita:
Empezado por Caro Ver Mensaje
Hola tanaka_reina, si necesitas que se limpie todo al cerrar tu formulario, deberías seguir lo que te explico Dec. El codigo que te puso de ejemplo no debes colocarlo en el OnClose de tu formulario, sino en el momento en que llamas a tu formulario, ademas que debes quitar el formulario del AutoCreate, ya que tu lo crearas y lo liberaras cuando lo necesites.

Para quitar del AutoCreate (Project->Options->Forms).

Si estas haciendo la llamada a tu formulario con Show, haces lo siguiente, digamos que Form1 es el formulario de donde llamaras a Form2:

En Form1, donde llames a Form2


Código Delphi [-]
Form2 := TForm2.Create(Self); //Creamos Form2
Form2.Show;





Y en el evento OnClose de Form2:


Código Delphi [-]
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree; //liberamos Form2
end;





Y si estas haciendo la llamada a tu formulario con ShowModal, colocas este codigo en el momento en que lo estas llamando.


Código Delphi [-]
Form2 := TForm2.Create(Self); //Creamos Form2
try
Form2.ShowModal;
finally
Form2.Free; //Una vez que se cierra Form2, se libera
end;





Pero si necesitas limpiar estando dentro de tu formulario, sin cerrarlo, debes hacerlo como te explica Lepe.

Saluditos
En efecto, funciona, con tan solo 6 lineas de codigo me ahorre cientos... interesante.
Responder Con Cita