Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234

Много чекбоксов при выборе чекбокса -выбрать сомбобокс visible true

11.06.2013, 16:59. Показов 1687. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем огромный привет!
обьясню ситуацию.
на панели есть 40 чекбоксов и 40 комбобоксов (комбобоксы все visible = false)
то есть видны только чекбоксы.
при нажатии на чекбокс (например CheckBox1 ) должен появиться ComboBox1.
естественно что для каждого чекбокса нет смысла писать
C++
1
 if (СheckBox1->Checked)ComboBox1->Visible = true ;
по этому я создал событие для всех чекбоксов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm1::CheckBoxSender(TObject *Sender)
{
 
 TCheckBox *check = dynamic_cast <TCheckBox *> ( Sender );
 //TComboBox *box = new TComboBox(box) ;
 
  AnsiString nomercheck = ((TCheckBox*) Sender)->Name;
 nomercheck.Delete(1, 8);// удаляю с 1 по 8 символ в имени "CheckBox" и остается только номер
          // box->Name = (FindComponent("ComboBox"+String(nomercheck))->Name)  ;
 
if (check->Checked)ComboBox1->Visible = true ;
    else
  ComboBox1->Visible = false;
   ShowMessage(FindComponent("ComboBox"+String(nomercheck))->Name);
}
теперь при выборе любого чекбокса я могу найти комбобокс по имени.
сам вопрос : как мне передать значение на найденный комбобокс Visible = true ; ?
никак не могу пройти этот шаг
уверен что есть очень простое решение.
я вероятно не там копаю.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.06.2013, 16:59
Ответы с готовыми решениями:

Сообщение при нажатии button о выборе отмеченных чекбоксов и радиокнопок
всем привет, только начали изучать ООП, а на завтро надо сделать и сдать элементраную программу, на форме расположены чексбоксы и...

В зависимости от выбранного чекбокса/чекбоксов вывести запрос
Хочу реализовать выполнение запроса через ADOQuery, но параметр должен определяться флажком или флажками CheckBox. То есть он может быть...

Bootstrap 4: снятие галочки с чекбокса при выборе другого чекбокса
Здравствуйте! Как снять галочку чекбокса при выборе другого чекбокса, рассположенных в цикле? Спасибо. } elseif...

4
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
11.06.2013, 18:28
Цитата Сообщение от lifeforce Посмотреть сообщение
уверен что есть очень простое решение.
Я в подобных случаях поступаю так: поскольку индексы у имен чекбоксов и комбо не обязательно совпадают, - присваиваю значения Tag , одинаковые попарно тем и другим (допустим, чекбокс 1 должен включать комбобокс 3; у обоих делаю Tag, например 10). Затем пишу один общий обработчик для чекбокса 1 (общий для всех остальных), в котором, используя Tag сэндэра, в цикле по всем комбобоксам формы пишу определение видимости: ComboBox[i]->Visible = (ComboBox[i]->Tag==`Sender->Tag`) ;
2
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
11.06.2013, 20:54  [ТС]
nick42,
очень интересно.
еще с тагами не работал сейчас попробую что нить сваять.
но этож на все 40 чеков и комбов надо прописать

Добавлено через 44 минуты
а нельзя ли как то так
по найденному номеру
сделать так
C++
1
ComboBox[nomercheck]->Visible = true;
????
[BCC32 Error] E2093 'operator*' not implemented in type 'AnsiString' for arguments of the same type

но сама инструкция не работает . вероятно нужно как то указать что это к примеру ComboBox1 (в зависимость от найденного номера)

Добавлено через 1 час 36 минут
нашел решение!!!!!!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::CheckBoxSender(TObject *Sender)
{
 
 TCheckBox *check = dynamic_cast <TCheckBox *> ( Sender );
  AnsiString ComboBox, nomercheck = ((TCheckBox*) Sender)->Name;
 nomercheck.Delete(1, 8);// удаляю с 1 по 8 символ в имени "CheckBox"
 //nomercheck = StrToInt(nomercheck) +10;
 
  dynamic_cast <TComboBox *> ( FindComponent("ComboBox"+String(nomercheck)) )->Visible = true;
 
 //ShowMessage(FindComponent("ComboBox"+String(nomercheck))->Name);
 
}
//---------------------------------------------------------------------------
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
11.06.2013, 21:22
Ну, правильно все. Только я намеренно привел вариант для более общего случая, когда контролы расставлялись хаотично, и номера индексов в имени не соответствуют (по классам).
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
11.06.2013, 21:26  [ТС]
nick42,
все равно, огромное тебе спасибо за подсказку!
может в другом случае и восспользуюсь тагом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.06.2013, 21:26
Помогаю со студенческими работами здесь

на кнопку кликаешь, Image1.Visible:=False; Image2.Visible:=True; Eще раз ликаешь, Image1.Visible:=True; Image2.Visible:=False.
на кнопку кликаешь, Image1.Visible:=False; Image2.Visible:=True; Eще раз ликаешь, Image1.Visible:=True; Image2.Visible:=False. ...

Скрыть div при выборе чекбокса
Привет всем у меня есть скрипт, который скрывает div при выборе чекбокса. только есть одна проблема. Дело в том, что он скрывает весь...

Изменение цвета строки при выборе чекбокса
Подскажите, как поменять цвет строки при выбранном чекбоксе например на такой цвет .active { background-color: green; ...

При выборе чекбокса в текстовое поле записывается текст
на странице html три чек бокса с лайболами(дата, время, дата и время) и тестовое поле. необходимо при выборе первого чекбокса в текстовое...

Почему появляется рамка в окне при нажатии на кнопку или выборе чекбокса?
доброго времени суток. Используюю только winapi. Собственно такой вопросец, почему появляется рамка в окне при нажатии на кнопку или выборе...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты 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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru