Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
24. Jul 2012
Bei TObjectList ist die Notification schon fertig überschrieben.
Man kann im Constructor oder später über OwnsObjects festlegen, ob die enthaltenen Objekte freigegeben werden sollen.
.Free gibt es immer, denn das ist im Basistyp "TObject" deklatiert, von dem jede Klasse erbt.
Destroy besser nicht direkt aufrufen. (das wird dann intern vom Free aufgerufen)
Nun ja, das ist ja grade...
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
24. Jul 2012
Gleichsetzen nicht (wenn's ginge, dann wäre das allerdings auch wieder ein wilder Cast), aber ich hatte auch nicht die einfache TList, sondern die generische TList<> verwendet.
Jener gibt man den Typ und sie baut diesen bei allen Aufrufen ein, womit dann nicht Pointer, sondern der richtige Type dort steht.
PS: Das "typumwandlung" ist aber nicht zufällig ein Objekt (Klasse) ?
Wenn ja, dann...
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
24. Jul 2012
Dann solltest du dir sowas besser abgewöhnen?
Man könnte sich ein TryGet basteln (ähnlich dem TCriticalSection.TryEnter oder TryStrToInt)
Und bezüglich wilder Typumwandlungen ... da haben die Generics ein paar nette Vorteile.
// statt
if MyList.Get(aindex) <> nil then
Result := TXyz(MyList.Get(aindex)).einwert;