Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как создать коллекцию из контролов


LandWarrior ©   (2002-10-13 18:04:00) 

Как мне создать коллекцию из контролов, используя как можно меньше собственного кода, т.е. обойтись стандартной функциональностью TCollection где только возможно?


Юрий Зотов   (2002-10-13 18:17:00) [1]

Стандартная функциональность TCollection не предусматривает, чтобы его Item"ы не были потомками TCollectionItem. Поэтому поработать все же придется, хотя и немного.

1. Создаем свой TControlCollectionItem, вводя в него published-свойство Control: TControl с методом Set (последний нужен для задействования стандартного механизма FreeNotification через компонент-владелец коллекции - при удалении Control"а ссылка на него должна быть очищена).

2. Создаем свой TControlCollection, в котором класс Item"ов переопределен на TControlCollectionItem.

3. Создаем компонент TControlLinks, который будет выступать владельцем коллекции (его основная роль - очистка ссылок на контролы в своем Notification).

Вот и все. Кладем этот компонент на форму - и получаем коллекцию ссылок на контролы с возможностью ее настройки в design-time.


Наверх

Титульная страница Поиск, карта сайта Написать письмо