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

Реализовать возможность выбора единственного CheckBox-а из нескольких

11.06.2008, 11:12. Показов 4796. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите плиз! Что-то совсем туплю

Есть 2 чекбокса, нужно сделать чтобы при клике на одном другой отключался, т.е. получилось что-то типа Radiogroup, но на чекбоксах.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.06.2008, 11:12
Ответы с готовыми решениями:

Реализовать возможность выбора только двух из трех возможных CheckBox
Как на VBA будет выглядеть код связывающий 3 чекбокса. У меня в екселе 2007 3 несвязанных чекбокса. Нужно, чтобы бы была возможность выбора...

Нежелательная возможность выбора нескольких radiobutton
Всем привет. Наблюдается глюк при размещении на странице нескольких radiobutton'ов. Когда выбираю один - всё ок, но как только хочу выбрать...

TRadioButton - возможность выбора одной из нескольких (трёх)
Во многих приложениях делается так, что выбирается, как правило, одна из нескольких. Скажите, как это реализуемо в FPC Lazarus. Я так...

9
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.06.2008, 11:31
ну в обработчики этих компонентов надо написать так:
Code
1
2
3
4
 1: 
 check1->checked = !check2->checked;
 2:
 check2->checked = !check1->checked;
ну и не забудь про начальные установки... хотя по идее будет работать все равно, даже если оба изначально будут без флажка
0
0 / 0 / 0
Регистрация: 05.05.2008
Сообщений: 21
11.06.2008, 11:46  [ТС]
Это я так понял надо в обработчики OnClick вписывать?
C++
1
2
3
4
5
6
7
8
9
10
//---------------------------------------------------------------------------
void __fastcall Txxx::CheckBox5Click(TObject *Sender)
{
CheckBox6->Checked= !CheckBox5->Checked;
}
void __fastcall Txxx::CheckBox6Click(TObject *Sender)
{
CheckBox5->Checked= !CheckBox6->Checked;
}
//---------------------------------------------------------------------------
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.06.2008, 11:55
ну в принципе да... по идее будет взаимо исключать флажок в одном из чеков...
0
0 / 0 / 0
Регистрация: 05.05.2008
Сообщений: 21
11.06.2008, 12:09  [ТС]
Что самое интересное, этот код интерретируется следующим образом: Если один из флажков отмечен, и нажимешь на другой, то с первого снимается флаг а на тот, который нажимаешь не ставится, а вот если нажать второй раз на второй флажок, то он наконец-то появляется!
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.06.2008, 12:37
понимаешь, в чем беда, ведут, конечно, тогда чеки себя не как радиогрупп, но если принудительно повесить на каждое событие, что один чек при клике true, а второй - false, то идет зацикливание, потому что установка свойства checked в одно из значений генерит событие OnClick и так скачут флажки до конца стека...
0
0 / 0 / 0
Регистрация: 05.05.2008
Сообщений: 21
11.06.2008, 12:43  [ТС]
Вот, спасибо, Вы вообщем то подтвердили мои сомнения, что Check и OnClick цикляться.
А нет какого-нибудь компонента что то вроде CheckGroup ???)
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.06.2008, 14:52
ну вообще я не теряю надежды, нае... обмануть и чекбоксы, может не через онклик можно как-то, а на счет такого компонента - вполне возможно, что есть такие, но за ненадобностью я не искал.
если тебе не так важны галочки, то можешь юзать TRadioButton, хотя

Добавлено через 2 часа 7 минут
нашел решение: объявляем две глобальные переменные
Code
1
bool isStop1 = false, isStop2 = false;
ну и пишем такие обработчики:
Code
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
void __fastcall TForm1::Check1Click(TObject *Sender)
{
    if(isStop1) return;
    isStop1 = false;
    isStop2 = true;
    Check2->Checked = false;
    Check1->Checked = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Check2Click(TObject *Sender)
{
    if(isStop2) return;
    isStop2 = false;
    isStop1 = true;
    Check1->Checked = false;
    Check2->Checked = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Check1Exit(TObject *Sender)
{
   isStop2 = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Check2Exit(TObject *Sender)
{
   isStop1 = false;
}
//---------------------------------------------------------------------------
0
0 / 0 / 0
Регистрация: 05.05.2008
Сообщений: 21
11.06.2008, 14:57  [ТС]
Нереальный респект! Работет! Спасибо большое!
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.06.2008, 15:24
кто ищет, тот всегда найдет))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.06.2008, 15:24
Помогаю со студенческими работами здесь

Комбинация выбора нескольких CheckBox и его обработка
У меня есть 6 чекбоксов.. Пользователь может поставить хоть во всех, хооть в одном или хоть в 5 галочки)) При каждом из них мне нужно...

как реализовать возможность выбора фигуры на панели
Добрый день, у меня имеется список фигур. все они отображаются на панели. я хочу, чтобы по клику на фигуру, она меняла свой цвет, то...

Сменить radio на checkbox для выбора нескольких ответов в тесте
Здравствуйте. Помогите пожалуйста. Как сделать чтобы вместо radio были checkbox и можно было выбирать несколько ответов в тесте? <FORM...

Загрузка нескольких картинок из папки и реализовать возможность переключения между ними
Добрый день. Хочу для начала сделать следующее: В окне у меня расположен ListBox. Кликая на определенном элементе, в Imagebox отображается...

Каким образом можно реализовать запись нескольких значений в "поле2" и так же необходима возможность выборки
Здравствуйте! Посоветуйте каким образом реализовать следующее: Например, есть список сотрудников в комбобокс и одну операцию, могут...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru