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

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

11.06.2013, 16:59. Показов 1722. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru