Класс TCollection является оболочкой коллекции, обеспечивая разработчика набором свойств и методов для управления ею (табл. 7.3).
Сама коллекция содержится в свойстве
property Items[Index: Integer]: TCollectionltem;
Полное объявление свойства в классе выглядит следующим образом:
property Items[Index: Integer]: TCollectionltem read Getltem write Setltem;
Методы Getitem и Setltem обращаются к внутреннему полю Fitems:
FItems: TList;
Именно оно хранит коллекцию объектов во время выполнения. Отсюда следует, что коллекция представляет собой список указателей на экземпляры класса TCollectionltem или его наследника. Класс TCollection обеспечивает удобство использования элементов списка.
Таблица 7.3. Свойства и методы класса TCollection
Объявление |
Описание |
property Count: Integer; |
Возвращает число элементов коллекции |
type TcollectionltemClass = class of Tcollectionltem; property ItemClass: TcollectionltemClass; |
Возвращает класс-наследник TCollectionltem, экземпляры которого собраны в коллекции |
property Items [Index: Integer]: Tcollectionltem; |
Коллекция экземпляров класса |
function Add: Tcollectionltem; |
Добавляет к коллекции новый экземпляр класса |
procedure Assign (Source: TPersistent) ; override; |
Копирует коллекцию из объекта Source в данный объект |
procedure BeginUpdate; virtual; |
Отменяет перерисовку коллекции. Используется при внесении изменений в коллекцию |
procedure Clear; |
Удаляет из коллекции все элементы |
procedure EndUpdate; virtual; |
Отменяет действие метода BeginUpdate |
function FindItemID(ID: Integer): TCollectionltem; |
Возвращает объект коллекции с номером ID |
function GetNamePath: string; override; |
Возвращает имя класса коллекции во время выполнения, если коллекция не имеет владельца. Иначе возвращает название свойства класса, владеющего коллекцией |
function Insert (Index: Integer): TCollectionltem; |
Вставляет в коллекцию новый объект на место с номером Index |