NamedObjs.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //---------------------------------------------------------------------------
  2. #ifndef NamedObjsH
  3. #define NamedObjsH
  4. #include <system.hpp>
  5. #include <contnrs.hpp>
  6. //---------------------------------------------------------------------------
  7. class TNamedObjectList;
  8. class TNamedObject : public TPersistent
  9. {
  10. public:
  11. AnsiString Name;
  12. __fastcall TNamedObject(): TPersistent() {};
  13. Integer __fastcall CompareName(AnsiString aName, Boolean CaseSensitive = False);
  14. __fastcall TNamedObject(AnsiString aName): TPersistent(), Name(aName) {}
  15. void __fastcall MakeUniqueIn(TNamedObjectList * List);
  16. };
  17. //---------------------------------------------------------------------------
  18. class TNamedObjectList : public TObjectList
  19. {
  20. private:
  21. int FHiddenCount;
  22. int __fastcall GetCount();
  23. virtual void __fastcall Notify(void *Ptr, TListNotification Action);
  24. void __fastcall SetCount(int value);
  25. protected:
  26. void __fastcall Recount();
  27. public:
  28. static const AnsiString HiddenPrefix;
  29. static bool __fastcall IsHidden(TNamedObject * Object);
  30. bool AutoSort;
  31. __fastcall TNamedObjectList();
  32. void __fastcall AlphaSort();
  33. virtual TNamedObject * __fastcall AtObject(Integer Index);
  34. TNamedObject * __fastcall FindByName(AnsiString Name, Boolean CaseSensitive = False);
  35. __property int Count = { read = GetCount, write = SetCount };
  36. __property int HiddenCount = { read = FHiddenCount, write = FHiddenCount };
  37. };
  38. //---------------------------------------------------------------------------
  39. int __fastcall NamedObjectSortProc(void * Item1, void * Item2);
  40. //---------------------------------------------------------------------------
  41. #endif