Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];

Вниз

Как создать коллекцию из контролов   Найти похожие ветки 

 
LandWarrior   (2002-10-13 18:04) [0]

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


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

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

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

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

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

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.007 c
1-78465
Sego
2002-10-12 18:54
2002.10.24
TreeView


4-78740
Endre
2002-09-07 15:45
2002.10.24
Командная строка с правами Админа.


14-78640
Dim!S
2002-10-04 13:09
2002.10.24
Складская программа


1-78483
Inan61
2002-10-12 16:50
2002.10.24
TSpeedButton и Glyph - как реализовать?


6-78556
Net
2002-08-21 07:52
2002.10.24
Оставить сообщение в гостевой книге на Народе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский