С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 20.02.2014
Сообщений: 5

Коварный ComboBox - определить, что в нем выбрано

22.01.2015, 19:25. Показов 2341. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите пожалуйста разобраться с коварным ComboBox в С++ Builde.

Задача состоит в том что бы в программе по средствам двух ComboBox'ов и одного Memo, так сказать расшифровать значение Beep-кода BIOS (пищалки).
Выгладить все должно примерно так: В ComboBox1 выбираем производителя BIOS (ну там IBM, AMI и т.п.); В ComboBox2 выбираем Beep-код соответствующий производителю BIOS, которого мы выбрали в ComboBox1. В поле Memo должна выводиться расшифровка выбранного Beep-кода в ComboBox2.

С тачки зрения обычного C++ в каком нибудь Dev C++ все выглядит просто switch да if и все работает, а тут с графическим интерфейсом как то все не очень ясно...

Все это безобразие графически выглядит примерно так:
Миниатюры
Коварный ComboBox - определить, что в нем выбрано  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.01.2015, 19:25
Ответы с готовыми решениями:

Определить, что выбрано в ComboBox
Здраствуйте, у меня есть один вопрос: Хочу в VB 2010 Express сделать так: У меня есть Combobox1 и Combobox2.В Combobox1 есть Items a и b, а...

Какой параметр DBLookUpComboBox отвечает за то, что в данный момент в нем выбрано?
Подскажите кто нибудь какой параметр комбобокса отвечает за то, что в данный момент в нем выбрано

Как определить, в каком из ComboBox было выбрано значение
Здравствуйте. В Excel документе есть 4 выпадающих списка, все они связаны с одним и тем же макросом, как определить из какого списка пришел...

3
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
22.01.2015, 19:35
просто switch да if и все работает
плюс (как вариант)
Code
1
ComboBox->ItemIndex
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,363
Записей в блоге: 3
22.01.2015, 20:30
Лучший ответ Сообщение было отмечено BRcr как решение

Решение

Не по теме:

А разве сигналы бипера в разных биосах не совпадают по значению? Я считал, что это стандарт еще со времен DOS...


А работает это "графическое безобразие" на самом деле очень просто...
У каждого элемента выпадающего списка есть свое "место под солнцем". Это "место" обозначает просто позицию элемента в списке и называется ItemIndex. Т.е., если мы пишем
C++
1
ComboBox1->ItemIndex = 0
это означает, что выбран первый элемент списка.
При выборе какого-то элемента списка наступает событие OnChange. Т.к. бип-сигналы в разных биосах разные (хм-м-м...), то имеет прямой смысл заполнять список бип-сигналов динамически, т.е. при выборе типа БИОС будут заполняться характерные для этого типа сигналы биппера.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
  ComboBox2->Items->Clear(); //Очищаем комбобокс гудков
  switch(ComboBox1->ItemIndex)
   {
     case 0 : //IBM
//Заполняем комбобокс2 значениями в зависимости от типа БИОС
       ComboBox2->Items->Add("Один короткий");
       ComboBox2->Items->Add("Три коротких, три длинных, три коротких");
       ...
       break;
     case 1 : //AMIBIOS
       ComboBox2->Items->Add("Один короткий");
       ...       
       break;
     ...
   }
}
Дальше, как не трудно догадаться, нам требуется проделать почти аналогичную процедуру для вывода описания в Мемо. Только тут придется учитывать не только тип БИОСА, но и тип сигнала...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
void __fastcall TForm1::ComboBox2Change(TObject *Sender)
{
  Memo1->Lines->Clear(); //Очищаем мемо
  switch(ComboBox1->ItemIndex)
   {
     case 0 : //IBM
       switch(ComboBox2->ItemIndex)
         {
           case 0:
             Memo1->Lines->Add("Полет нормальный");
             break;
           case 1:
             Memo1->Lines->Add("SOS");
             break;
           ...
         }
       break;
     case 1 : //AMIBIOS
       switch(ComboBox2->ItemIndex)
         {
           case 0:
             Memo1->Lines->Add("Полет нормальный");
             break;
           ...
         }
       break;
       ...
   }
}
Ну вот так как-то...
А вообще, под это дело проще какую-нибудь БД замутить, намного все проще будет
1
0 / 0 / 0
Регистрация: 20.02.2014
Сообщений: 5
22.01.2015, 21:01  [ТС]
Огромное спасибо! Теперь все стало гораздо понятнее.

P.S. А с базой данных очень любопытная мысль. Надо над этим поразмыслить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.01.2015, 21:01
Помогаю со студенческими работами здесь

Как узнать, что было выбрано в динамически созданном ComboBox
Здравствуйте уважаемые форумчани, подскажите пожалуйста в одном вопросе. Я динамически создаю комбобокс: ComboBox comboBox2 =...

В зависимости от того, что выбрано в одном Combobox в другом на выборку давалось другое
как сделать так, чтобы в зависимости от того, что выбрано в одном комбобоксе в другом на выборку давалось другое?

Делаю, чтобы в ComboBox, когда не выбрано не одного элемента, то отображалось слово по умолчанию. Но что-то не появляется.
Сделал в стиле так, показывать весь нету смысла, я оставил то, что я добавил в триггеры: ...

Определить, что выбрано в SListBox
Здравствуйте! У меня такой вопрос как мне сделать так что бы если в sListBox1 выбран определенный текст топустим в sListBox1 у меня имена...

Компонент TShellListView: определить, что выбрано пользователем
Выглядит компонент клёво а вот как узнать, что выбрано пользователем совсем не ясно. Заранее блпагодарен за любые подсказки.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru