Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Liberación de un Form No Modal (https://www.clubdelphi.com/foros/showthread.php?t=69755)

vejerf 06-09-2010 19:08:44

Liberación de un Form No Modal
 
Buenas,

Por unos motivos he creído conveniente en mi aplicación crear unos cuadros de diálogos no modales, es decir, darán avisos al usuario pero no detendrán la ejecución.

Debido a que no se detiene la ejecución no sabía en qué momento debería de liberar la memoria.

Yo creo el objeto así:
Código Delphi [-]
with TDialogoForm.Create(nil) do
  begin
    ...
    Show;
  end;

Según he leído la forma correcta de liberar la memoria para un objeto así es en el evento OnClose de la siguiente forma:
Código Delphi [-]
procedure TDialogoForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

¿Es esto correcto o sería más correcto un FreeAndNil? ¿Otra forma más eficiente y que no de problemas?

Saludos!

ecfisa 06-09-2010 19:41:20

Hola verjef.

Si querés liberarlo inmediatamente despues de que se cierra, podés usar:
Código Delphi [-]
procedure TDialogoForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  DialogoForm:= nil;
end;

Si te interesa algo más de información, en este LINK , explica el funcionamiento de caFree.


Saludos.


La franja horaria es GMT +2. Ahora son las 09:32:24.

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