Einzelnen Beitrag anzeigen

Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Gibt TObject Speicherplatz wieder frei ?

  Alt 20. Aug 2005, 02:12
Wie kann man 5000 Beiträge in einem Delphi-Forum sammeln ohne...schon gut. Resourcenschutzblock nicht vergessen.

Delphi-Quellcode:
procedure foo;
var Inst: TMyObject;
begin
  //Instanz erzeugen
  Inst := TMyObject.Create;
  try
   //Etwas machen, das eine Exception auslösen kann
   Inst.DoSomething;
  finally
   //Sicherstellen, dass das Objekt freigegeben wird
   Inst.Free;
  end;
 //Ab hier nicht mehr auf Inst zugreifen, sonst AV
end;
Wenn das Objekt im Constructor Instanzen von anderen Klassen erzeugt, müssen die unbedingt im Destructor wieder freigegeben werden.

Delphi-Quellcode:
type
  TMyObject = class(TObject)
  private
   FStrings: TStrings;
   procedure SetStrings(Value: TStrings);
  public
   constructor Create;
   destructor Destroy; override;
  published
   property Strings: TStrings read FStrings write SetStrings;
  end;

implementation
 
constructor TMyObject.Create;
begin
 inherited;
 FStrings := TStringlist.Create;
end;

destructor TMyObject.Destroy;
begin
 FStrings.Free;
 inherited;
end;

procedure TMyObject.SetStrings(Value: TStrings);
begin
 If Assigned(Value) then FStrings.Assign(Value);
end;
edit: fehler im code beseitigt
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat