Форум: "Начинающим";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
ВнизКак создать тип "множество" для динамических компонентов Найти похожие ветки
← →
neworok (2015-03-19 14:18) [0]Динамически создаю на форме 5 визуальных компонентов (например, панелей). Задача включить в множество панели красного цвета.
Делаю так:type
TMyPanel = Class(TPanel);
TMyArray = array[1..5] of TMyPanel; //в программе делаю каждый элемент массива - это динамически созданная панель: 2 зеленых, 3 красных
TMySet = Set of TMyArray; - здесь ошибка компилятора.
Как сделать правильно - сообразить не могу!!!
← →
neworok (2015-03-19 14:22) [1]как бы на мой взгляд TMyArray - конечный массив, к каждому элементу можно обратиться, значит не противоречит принципам объявления множества.
а компилятор говорит: "вот, дурак!"
← →
MBo © (2015-03-19 14:24) [2]Множество может состоять только из элементов перечислимого типа, например, целых чисел.
Целые индексы в массиве не подойдут?
← →
Германн © (2015-03-19 14:25) [3]
> значит не противоречит принципам объявления множества
Это смотря какого множества. Паскалевское множество может включать в себя элементы со значениями от 0 до 255.
← →
Ega23 © (2015-03-19 14:49) [4]биты выставляй. ) - присутствует в множестве, 1 - не присутствует. для пяти элементов - 5 бит.
← →
neworok (2015-03-19 14:55) [5]>Множество может состоять только из элементов перечислимого типа
вот я туда и сажаю динамические визуальные компоненты.
Если бы не динамические - нет проблем, было бы так:type
TmyPer = (Panel1, Panel2, Panel3, Panel4, Panel5);
TMySet = Set of TmyPer;
задача сделать динамические....
← →
neworok (2015-03-19 15:03) [6]
> биты выставляй. ) - присутствует в множестве, 1 - не присутствует.
> для пяти элементов - 5 бит
вот эта идея хорошая - добавить в панель новые поля (на самом деле у меня 15 множеств, значит 15 доп. полей)
но не совсем удобно:
панелей у меня не 5, а 100 - значит надо делать 15 переборов по 100 шт. - будет тупить, а так было бы 15 множеств по 5-7 эл. в каждом...
← →
Юрий Зотов © (2015-03-19 15:50) [7]> neworok (19.03.15 14:55) [5]
Объекты (в том числе, компоненты) к перечислимому типу не относятся и поэтому элементами множества быть не могут в принципе. Как их ни создавай, хоть статически, хоть динамически. Поэтому была бы та же самая проблема.
← →
MBo © (2015-03-19 16:28) [8]Опиши реальную задачу.
← →
кгшзх © (2015-03-19 16:33) [9]Как сделать правильно - сообразить не могу!!!
Правильно без множества. А то сначала его сделаешь, а потом захочешь перебрать панели в нем по индексу.
И обнаружишь что правильно было без множества
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.056 c