Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.05 c
4-1281052143
korbin dalas
2010-08-06 03:49
2017.01.15
Как прочитать содержимое HDD без использования файлов?


15-1451175767
Kerk
2015-12-27 03:22
2017.01.15
А порекомендуйте хорошее крымское вино


15-1456148886
K-1000
2016-02-22 16:48
2017.01.15
TCanvas. Вывести текст с разноцветными буквами


2-1428448138
Дмитрий
2015-04-08 02:08
2017.01.15
Закладки в Word


15-1454413847
Кто б сомневался
2016-02-02 14:50
2017.01.15
Запустить с обычными правами из под проги с админ. правами





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский