Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: CL | DM;

Вниз

Как создать тип "множество" для динамических компонентов   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
15-1456319592
Копир
2016-02-24 16:13
2017.01.15
Порой опять гармонией упьюсь, Над вымыслом слезами обольюсь...


1-1345023707
vlad2
2012-08-15 13:41
2017.01.15
Вопросы по TChart: 1) AddNull в TGanttSeries; 2) refresh TChart


15-1456754444
K-1000
2016-02-29 17:00
2017.01.15
Как объединить несколько матриц для SetWorldTransform()?


2-1421583719
Боб
2015-01-18 15:21
2017.01.15
Приостановка работы хука


15-1452558730
Сергей Суровцев
2016-01-12 03:32
2017.01.15
Appmethod слили