Nimm doch einfach den Code aus dem ersten Post und ersetze TList durch TObjectList (
unit contnrs). Wenn Du den Parameter OwnsObjects im Konstruktor nicht änderst, kümmert sich die Liste selbstständig um die Freigabe der enthaltenen Objekte. Einfacher geht es doch nicht mehr.
[edit] Da fehlte ein Buchstäbelchen [/edit]