|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.02.2014, 01:12 | #11 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Если границы для любого из уровней известны, то здесь может помочь динамический массив.
Только в нем можно задавать "не прямоугольные матрицы", т.е. разное количество элементов для каждого элемента предыдущей размерности. К тому же, автору нужно не два комбобокса, а больше. И эта задача посильна трех-, четырех-, и т.д. мерным дин. массивам. Недостаток в этой ситуации - формирование всех размерностей можно делать только в рантайме. Последний раз редактировалось Прик; 10.02.2014 в 01:14. |
10.02.2014, 01:15 | #12 | |
Форумчанин
Регистрация: 01.11.2012
Сообщений: 770
|
Цитата:
|
|
10.02.2014, 01:31 | #13 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Без претензий на оптимальность и изящность, только для примера как вариант:
Код:
Последний раз редактировалось Прик; 10.02.2014 в 01:45. |
10.02.2014, 02:16 | #14 |
Форумчанин
Регистрация: 01.11.2012
Сообщений: 770
|
Вобщем подумал немного и что-то уже надумал, в принципе все отлично работает, вот только очень много строк кода получается, но все таки, как вам такой способ? Или кто-то что-то менее геморное предложить может?
Код (естественно изначально указываются пункты через Items.Add): Код:
|
10.02.2014, 02:31 | #15 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Сократить код для удобочитаемости можно так:
Код:
Примечание.Перед наименованиями компонентов, находящихся на этой же форме нельзя подставлять квалификатор (переменную формы). Т.е. конструкция Form1.sComboBox1 является организационной ошибкой. Последний раз редактировалось Прик; 10.02.2014 в 02:36. |
10.02.2014, 02:34 | #16 | ||
Форумчанин
Регистрация: 01.11.2012
Сообщений: 770
|
Прик, вот, за case of спасибо больше, это уже как минимум достаточно сильно упростит код, спасибо
Прик, жееесть, case of реально работает и очень сильно упрощает работу)))) Цитата:
Цитата:
Последний раз редактировалось FleXik; 10.02.2014 в 02:37. |
||
10.02.2014, 02:43 | #17 | |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Цитата:
Вы хотите этим сказать, что обращаетесь к комбобоксу, размещенному в классе TForm1. Но ведь комбобокс и так находится на этой форме. Зачем уточнять (называется тавтологией)?. Это не только не логично, но и опасно. При необходимости изменить имя пеерменной (здесь Form1) можно забыть, что везде в тексте подставлено имя этой переменной и придется ее менять. Лишняя работа. Если бы нам нужно было обратиться к компоненту на другой форме из формы 1, то тогда да, нужно указывать принадлежность этого компонента к другой форме. Например, Form5.sComboBox1. А в тексте нашей TForm1 нужно указывать имя компонента без переменной формы Form1. Просто: sComboBox1. Последний раз редактировалось Прик; 10.02.2014 в 02:49. |
|
10.02.2014, 02:45 | #18 | |
Форумчанин
Регистрация: 01.11.2012
Сообщений: 770
|
Цитата:
и да, я всегда приставку Form использую, пока что вроде как проблем ни с чем не замечал... ------------------------- извиняюсь))) я немного тупанул, таки в Unit1 это дело находится и обращение в принципе и не нужное, но я привык эту приставку использовать. -------------------- я так понял вы про это Код:
Последний раз редактировалось FleXik; 10.02.2014 в 02:52. |
|
10.02.2014, 02:53 | #19 | ||
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Цитата:
Обязательно придет время когда эта привычка "выстрелит". Цитата:
Когда количество элементов в комбобоксе 2 меняется в зависимости от значения ItemIndex в комбобоксе 1. (см. свой пост #16) Последний раз редактировалось Прик; 10.02.2014 в 02:58. |
||
10.02.2014, 02:56 | #20 | |
Форумчанин
Регистрация: 01.11.2012
Сообщений: 770
|
Цитата:
---------- Прик, вы про это (приставку Form1 потом везде где лишняя - уберу)??? Код:
Последний раз редактировалось FleXik; 10.02.2014 в 03:10. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Метод ветвей и границ для задачи "Багдадский вор" | Zavoorchik | Помощь студентам | 0 | 01.05.2012 12:04 |
двумерный массив. вывести все строки, содержащие хотя бы один "0"(ноль) (написать через функцию в Delphi) | BLADIMIR | Помощь студентам | 4 | 07.09.2011 21:24 |
"Индекс вне границ массива". Строки. (Проблема еще не решена) | Broken Angel | Помощь студентам | 5 | 18.01.2011 21:33 |
C# ошибка:"Индекс находился вне границ массива" | potap88 | Помощь студентам | 16 | 18.04.2010 15:50 |
"Слепить" несколько документов в один | Diego__ | Microsoft Office Word | 2 | 13.02.2010 19:10 |