#ifndef TTYPEDLIST_H #define TTYPEDLIST_H #include template class TTypedList : public TList { private: bool bAutoDelete; protected: T* __fastcall Get(int Index) { return (T*) TList::Get(Index); } void __fastcall Put(int Index, T* Item) { TList::Put(Index,Item); } public: __fastcall TTypedList(bool bFreeObjects = false) :TList(), bAutoDelete(bFreeObjects) { } int __fastcall Add(T* Item) { return TList::Add(Item); } void __fastcall Delete(int Index) { if(bAutoDelete) delete Get(Index); TList::Delete(Index); } void __fastcall Clear(void) { if(bAutoDelete) { for (int j=0; j