![]() |
Verständnisfragen zu TObject und TObjectList
Hi,
ich habe nochmal eine Verständnisfrage bezüglich Objekte: Angenommen ich habe folgende Klassen:
Delphi-Quellcode:
Nun kann einer Autosammlung ja über folgenden Code ein Auto hinzufügt werden:
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;
Delphi-Quellcode:
So und nun die Verständnisfragen:
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; 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 ;-) |
Re: Verständnisfragen zu TObject und TObjectList
1) Ja
2) nö, wieso, verstehe deinen Gedankengang nicht. |
Re: Verständnisfragen zu TObject und TObjectList
Hi,
zu zwei: Du könntest per Items[0] das Auto auslesen und die Eigenschaften verändern. Quasi so:
Delphi-Quellcode:
procedure TForm1.ErstelleNeuesAuto(auto_Marke : String, auto_Marke : String, auto_Baujahr : Integer);
var newCar : TAuto; begin newCar = TAuto(autoSammlung.Items[0]); if newCar = nil then begin newCar := TAuto.Create; autoSammlung.Add(newCar); end; newCar.Marke := auto_Marke; newCar.Modell := auto_Marke; newCar.Baujahr := auto_Baujahr; end; |
Re: Verständnisfragen zu TObject und TObjectList
Stimmt, so könnte ich das machen ;-)
Okay, dann danke für eure Hilfe...ganz schön viele Fragen rund um Objekte und Objektlisten, aber so lernt man am Besten :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz