Delphi - como liberar memoria

 
Vista:

como liberar memoria

Publicado por iraim (14 intervenciones) el 29/06/2006 09:30:50
bueno aqui va una nueva pregunta para los grandes talentos
tengo una aplicacion con varios form los he creado de la siguiente forma

Form2:=TForm2.Create(Application);

mi problema radica en que a pesar de que en el evento onclose he escrito

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

y en el evento onclic de un boton cerrar he escrito

procedure TForm2.Button1Click(Sender: TObject);
begin
Form2.Close
end;

cuando hago una pregunta mediante otro boton para saber si aun se esta ejecutando el form 2 me dice que si
la pregunta la hago de la siguiente manera

procedure TForm1.Button1Click(Sender: TObject);
begin
if Assigned(Form2) then ShowMessage('SI esta siendo usado ') else ShowMessage('No esta siendo usado ');
end;

conclusiones como puedo destruir completamente de la memoria a este maltido formulario

de antemano un saludos y mil gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como liberar memoria

Publicado por Dr Juzam (821 intervenciones) el 29/06/2006 14:18:25
Una vez hayas cerrado el Form2 y liberado su memoria debes, desde el Form1, hacer que la variable Form2 no apunte a nada:

Form2:=nil;

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como liberar memoria

Publicado por jesus (26 intervenciones) el 29/06/2006 20:06:26
Puedes liberar, despues de cerralo, FORM1.FREE, con eso lo quitas de la memoria, espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como liberar memoria

Publicado por iraim (14 intervenciones) el 29/06/2006 20:32:16
muchas gracias a todos me sido de gran ayuda todas sus colaboraciones
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como liberar memoria

Publicado por javier (4 intervenciones) el 01/08/2006 01:51:09
create un procedimiento como este

procedure TFrmMainChild.MuestraForma(Clase: TFormClass);
var
Forma: TForm;
begin
Forma := Clase.Create(Self);
ShowModal;
end;

y mandalo llamar asi
MuestraForma(TFrmCatalogoEmpresarial);

TFrmCatalogoEmpresarial= el normbre de tu forma con la T por delante

y tu forma debe tener la propiedad FormStyle= fsNormal

otra cosa en la barra de menu Proyect/Options/Forms solo debes de poner tu forma principal

tu problema es que cuando inicias tu aplicacion delphi carga todas las formas y por eso el problema de la memoria

con este consejo que te doy delphi solo carga la forma principal y cuando cierra la forma
delphi destruye automaticamente la forma que estas cerrando

aver si me explique saludos bye
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar