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