Название: Один динамический источник данных для нескольких combobox'ов Отправлено: Givoi от Август 22, 2012, 19:22 Вот такая проблема возникла... как лучше сделать, на форме 4 combobox, из которых можно выбрать один из ком портов, если в одном комбобоксе выбран допустим первый ком порт, то в 3 остальных комбобоксах он должен исчезать из выбираемых. При этом нужно учесть что можно поменять порт, и тот который был выбран до этого должен вернуться в список. 0_о
Название: Re: Один динамический источник данных для нескольких combobox'ов Отправлено: Igors от Август 22, 2012, 19:31 Не проще ли давать отлуп типа "этот порт уже выбран"? А то "исчезновение" может быть неправильно понято
Название: Re: Один динамический источник данных для нескольких combobox'ов Отправлено: Givoi от Август 22, 2012, 19:32 неа, ТЗ
Название: Re: Один динамический источник данных для нескольких combobox'ов Отправлено: Bepec от Август 22, 2012, 19:47 ну сразу видна гадость - остальные комбобоксы должны содержать пункт аля "не выбрано" :)
А так просто зацепить все комбы на 1 слот и там через sender разруливать ситуацию :) Название: Re: Один динамический источник данных для нескольких combobox'ов Отправлено: andrew.k от Август 22, 2012, 21:08 неа, ТЗ Какое-то странное ТЗ.Прямо так и написано, что должно что-то исчезать? Название: Re: Один динамический источник данных для нескольких combobox'ов Отправлено: andrew.k от Август 22, 2012, 21:25 А если, например, я по ошибке в первом комбобоксе выбрал COM1, а во втором COM2. Затем обнаружил свою ошибку и хочу поменять их местами?
Нужно будет делать три операции, вместо нормальных двух, либо даже одной (при нормальной реализации)! А если всего будет доступно только 4 порта, то выбрав один раз все порты их уже невозможно будет изменить (т.к. все порты выбраны, то комбобоксы должны быть пустые) Раз уж нужно именно 4 комбобокаса, я бы сделал так: 1. Во всех комбобокса должен быть конечно же полный список всех доступных портов. 2. При выборе порта в одном из комбо, смотрим не выбран ли он в других. Если не выбран, то все ок. 3. Если уже выбран в другом комбо. варианты: 3а. Повторяющийся заменяем на первый по порядку свободный 3б. Повторяющийся заменяем на то, который был до этого выбран в текущем элементе. Вариант 3б позволит в один клик, поменять местам два порта, а это наверняка будет частая операция, либо как минимум полезная. Вариант 3а простой и понятный. Не думаю, что все это будет противоречить ТЗ. И вообще исчезающие элементы управления это глупость, если что-то должно быть недоступно, оно должно быть выключено (disabled), но оставаться на экране и желательно не менять своего положения. В твоей реализации если кто-то перепутает уже настроенные порты, перенастройка превратится в головоломку. Что где надо тыкнуть, чтобы там где-то появилось то, что требудется. Пересмотри подход. Название: Re: Один динамический источник данных для нескольких combobox'ов Отправлено: andrew.k от Август 22, 2012, 21:27 Ничегосебе какое большое сообщение настрочил) Буду надеяться, что не зря)
Название: Re: Один динамический источник данных для нескольких combobox'ов Отправлено: andrew.k от Август 22, 2012, 21:37 ну сразу видна гадость - остальные комбобоксы должны содержать пункт аля "не выбрано" :) Это кстати тоже чушь.В комбобоксе легко может быть ничего не выбрано. Может еще в лайнэдиты писать "ничего не вписано", если он пуст? Название: Re: Один динамический источник данных для нескольких combobox'ов Отправлено: Bepec от Август 22, 2012, 22:22 LineEdit пуст. А ComboBox подразумевает содержание :) Не со мной спорь - с пользователем.
Пустой комбобокс выбора порта - ЧЗХ? Если такое ТЗ - делай по ТЗ. Как примерно я уже описал. А если есть простор для фантазии - варианты andrew.k к вашим услугам :) Название: Re: Один динамический источник данных для нескольких combobox'ов Отправлено: andrew.k от Август 22, 2012, 22:35 LineEdit пуст. А ComboBox подразумевает содержание :) Не со мной спорь - с пользователем. Какой из тебя пользователь мне остается только догадываться.Пустой комбобокс выбора порта - ЧЗХ? Не пустой комбобокс, а комбобокс в котором ничего не выбрано! Разницу понимаешь? А вот если делать по этому "ТЗ", то в случае только 4 доступных портов и 4 комбобоксах, как бы более чем наполовину очевидно, что все они будут пустыми, после сделанного выбора во всех комбо. И изменить эту ситуацию станет невозможно! Название: Re: Один динамический источник данных для нескольких combobox'ов Отправлено: andrew.k от Август 22, 2012, 22:40 Кстати это вариант 3а, если выбрать тот, что уже есть, повторяющийся комбобокс "теряет" выбранный элемент, т.е. в нем после этого ничего не выбрано.
Название: Re: Один динамический источник данных для нескольких combobox'ов Отправлено: andrew.k от Август 22, 2012, 22:47 Хозяйке на заметку:
"Если у вас нет времени сделать что-то правильно, где же вы найдете время, чтобы это переделать?" автор мне неизвестен. Название: Re: Один динамический источник данных для нескольких combobox'ов Отправлено: Givoi от Август 23, 2012, 20:42 andrew.k, спасибо большое. Все сделал. Добавил в список первую(точнее нулевую) запись "NONE", и если выбирается порт, который уже выбран в другом комбобоксе, то в том, котором порт был выбран ранее, значение сбрасывается на "NONE".
|