ObjectList из модуля Contnrs и никаких проблем
только надо свойство OwnsObjects иметь ввиду, если не надо, чтобы он сам освобождал элементы, при их удалении
я бы сделал так:
PHP код:
uses Contnrs
TCommandStack = class (TObjectList)
TCommand = class (TStringList)