Recuperación de memoria
Publicado por Pascual (12 intervenciones) el 11/11/2006 17:50:35
Hola, tengo un programa en el que quiero que la recuperación de memoria se me haga correctamente.
He añadido a mi proyecto la unidad "Gestion de Memoria" que me crea un archivo de texto errores.log si la recuperacion de memoria no ha sido correcta.
Tengo este programa, es un formulario vacío:
unit formulario_vacio;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Close;
end;
end.
Con este programa se genera ese archivo de errores por lo que la recuperación de memoria no ha sido correcta. He probado a poner:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Destroy;
end;
Si hago esto no se genera ningún error de recuperacion de memoria pero el programa sigue en estado Running y tengo que dar a Ctrl+F2 para que se detenga la ejecución.
Estoy pensando en algo así como:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Destroy;
<Código equivalente a Ctrl+F2 para que se detenga la ejecución>
end;
¿Cómo hago para liberar toda la memoria que he reservado al crear el formulario?. Muchas gracias.
He añadido a mi proyecto la unidad "Gestion de Memoria" que me crea un archivo de texto errores.log si la recuperacion de memoria no ha sido correcta.
Tengo este programa, es un formulario vacío:
unit formulario_vacio;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Close;
end;
end.
Con este programa se genera ese archivo de errores por lo que la recuperación de memoria no ha sido correcta. He probado a poner:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Destroy;
end;
Si hago esto no se genera ningún error de recuperacion de memoria pero el programa sigue en estado Running y tengo que dar a Ctrl+F2 para que se detenga la ejecución.
Estoy pensando en algo así como:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Destroy;
<Código equivalente a Ctrl+F2 para que se detenga la ejecución>
end;
¿Cómo hago para liberar toda la memoria que he reservado al crear el formulario?. Muchas gracias.
Valora esta pregunta


0