Ver Mensaje Individual
  #1  
Antiguo 21-04-2009
Avatar de josuk
josuk josuk is offline
Registrado
 
Registrado: abr 2009
Posts: 3
Reputación: 0
josuk Va por buen camino
Question Liberar Objetos ¿Cómo resolver esto?

La creación de objetos se realiza sin problemas, en particular se trata de un objeto ”Casa” que contiene un array dinámico de objetos “Habitacion”.
Pero el problema es a la hora de liberarlos, dando error de violación de memoria.

¿Qué estoy haciendo mal?
¿Cómo debería hacerlo?

Si alguien lo consigue por favor decidme cómo!

Os pongo el código a continuación. Gracias compañeros.

...
Type
THabitacion = class (TObject)
Descripcion: string;
end;

TCasa = class (TObject)
Habitacion: array of THabitacion;
end;

var
Casa: TCasa;

implementation

procedure TForm1.BotonCrearClick (Sender: TObject);
begin
Casa:= TCasa.Create;
SetLength(Casa.Habitacion,1);
Casa.Habitacion[1]:=THabitacion.Create;
Casa.Habitacion[1].Descripcion:='Dormitorio';
end;

procedure TForm1.BotonLiberarrClick (Sender: TObject);
begin
Casa.Habitacion[1].Free;
Finalize(Casa.Habitacion);
Casa.Free;
end;
...
Responder Con Cita