Официальная вики-документация Embarcadero на Generics.Collections.TObjectList содержит простой пример кода TObjectList в действии .
Я точно не знаю, к чему ведет этот вопрос, но для решения широкого использования TObjectList пример кода инициализации для TObjectList может выглядеть следующим образом:
var
List: TObjectList<TNewObject>;
Obj: TNewObject;
begin
{ Create a new List. }
List := TObjectList<TNewObject>.Create();
{ Add some items to the List. }
List.Add(TNewObject.Create('One'));
List.Add(TNewObject.Create('Two'));
{ Add a new item, but keep the reference. }
Obj := TNewObject.Create('Three');
List.Add(Obj);
Пример кода должен дать вам представление о том, что может делать TObjectList, но если я правильно понял вопрос, кажется, вы хотели бы иметь возможность добавить более одного типа класса к один экземпляр TObjectList ? TObjectList может быть инициирован только с одним типом, поэтому было бы лучше, если бы вы инициировали TObjectList с помощью класса Interface или Abstract, который является общим для всех классов, которые вы хотите добавить в него.
Одно важное отличие при использовании TObjectList по сравнению с созданием собственного - это наличие свойства OwnsObjects , которое сообщает TObjectList , владеет ли оно объектами, которые вы добавьте к этому и, следовательно, следовательно, должен ли он сам освободить их.