Что нового

Много checkbox - выбрать только один

Notum

Новичок
Сообщения
71
Репутация
0
Имеется 5 checkbox.
При нажатии на кнопку необходимо сделать проверку, что выбран только один checkbox.
На ум приходит только сделать 5 проверок - не выделен ли каждый из чекбоксов.

Какой есть более элегантный способ реализовать данную задачу?
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
Notum

Без функции GUICtrlRead() не обойтись, а она возвращает 1, если включено, и 4, если не включено...

Проверку все равно делать, но можно обойтись одной комбинированной проверкой с помощью And и Or...
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
Dim $Check[5]

...

For $i = 0 To 4
	$Check[$i] = GUICtrlCreateCheckbox(...)
Next

...

$Checked = 0
For $i = 0 To 4
	$Checked += (BitAND(GUICtrlRead($Check[$i]), $GUI_CHECKED) = $GUI_CHECKED)
Next
If $Checked > 1 Then
	...
Else
	...
EndIf
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Помоему для таких целей существует радиобокс вместо чекбоксов
 
Верх