Hi,
ich habe nochmal eine Verständnisfrage bezüglich Objekte:
Angenommen ich habe folgende Klassen:
Delphi-Quellcode:
type
TAuto = class(TObject)
Marke : String;
Modell : String;
Baujahr : Integer;
end;
type
TAutoSammlung = class(TObjectList)
end;
{...}
var autoSammlung : TAutoSammlung;
{...}
procedure TForm1.Create(...);
begin
autoSammlung := TAutoSammlung.Create(True);
end;
Nun kann einer Autosammlung ja über folgenden Code ein Auto hinzufügt werden:
Delphi-Quellcode:
procedure TForm1.ErstelleNeuesAuto(auto_Marke : String, auto_Marke : String, auto_Baujahr : Integer);
var newCar : TAuto;
begin
// (2)
newCar := TAuto.Create;
newCar.Marke := auto_Marke;
newCar.Modell := auto_Marke;
newCar.Baujahr := auto_Baujahr;
autoSammlung.Add(newCar);
end;
So und nun die Verständnisfragen:
1.) Ist es richtig, dass ich nun das Objekt newCar
NICHT über
FreeAndNil(newCar); oder
newCar.Free; freigeben darf, weil in der AutoSammlung quasi nur der Verweis auf das Auto-Objekt steht?
2.) Wenn ich immer nur EIN Auto integriert haben möchte (was zugegebenermaßen wenig Sinn bei einer AutoSammlung macht *g*, aber es geht ums Verständnis), muss ich dann an der mit (2) markierten Stelle nicht
FreeAndNil(newCar); einbauen, weil ich doch sonst immer ein weiteres Auto-Objekt hinzufüge?
Die beiden Fragen haben sich mir gerade noch gestellt...wäre super, wenn jemand etwas Lichts ins Dunkle bringen könnte