Nochmal, die Ableitung des Typ2 von Typ1 und das Typecasting der Objektliste zu einer solchen vom Typ2 funktioniert ja; ich würde nur gern wissen, ob es eine elegantere Möglichkeit gibt und dabei mein Wissen noch erweitern.
Ja gibt es
Siehe meinen letzten Post. Du musst den generischen Parameter an deine Klasse attachen und NICHT hardcoded an
TObjectList
. Also
type TMyObjectList<T: TBaseClass> = class(TObjectList<T>)
statt
type TMyObjectList = class(TObjectList<TBaseClass>)
.
Dann verwendest du für die Typ1/TBasisClass Listen die Deklaration
var List: TMyObjectList<TBaseClass>
und für die Typ2/TDerivedClass Listen entsprechend
var List: TMyObjectList<TDerivedClass>
. Im zweiten Falle sind dann auch alle Objekte der Liste vom Typ
TDerivedClass
, so dass du dir den Typecast sparen kannst.