Что нового

[Элементы GUI] как изменить название checkbox в зависимости от выбранного radio

dimcomp

Новичок
Сообщения
66
Репутация
0
Нужно чтобы менялось название checkbox в зависимости от того какая кнопка выбрана
Код:
#include <GUIConstantsEx.au3>
Global $i1 = "1", $i2 = "2"

$Form1 = GUICreate("пример", 313, 165, 192, 114)
$Radio1 = GUICtrlCreateRadio("Радио 1", 10, 10, 113, 17)
$Radio2 = GUICtrlCreateRadio("Радио 2", 10, 50, 113, 17)
$Checkbox1 = GUICtrlCreateCheckbox($i1, 192, 10, 113, 17)
$Checkbox2 = GUICtrlCreateCheckbox($i2, 192, 50, 113, 17)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Radio1
            $i1 = "3"
	    $i2 = "4"
	Case $Radio2
            $i1 = "1"
	    $i2 = "2"	
    EndSwitch
WEnd

Так не работает. :(
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Код:
#include <GUIConstantsEx.au3>

Global $i1 = "1", $i2 = "2"

$Form1 = GUICreate("пример", 313, 165, 192, 114)
$Radio1 = GUICtrlCreateRadio("Радио 1", 10, 10, 113, 17)
$Radio2 = GUICtrlCreateRadio("Радио 2", 10, 50, 113, 17)
$Checkbox1 = GUICtrlCreateCheckbox($i1, 192, 10, 113, 17)
$Checkbox2 = GUICtrlCreateCheckbox($i2, 192, 50, 113, 17)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Radio1
			GUICtrlSetData($Checkbox1, "3")
			GUICtrlSetData($Checkbox2, "4")
		Case $Radio2
			GUICtrlSetData($Checkbox1, $i1)
			GUICtrlSetData($Checkbox2, $i2)
	EndSwitch
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
dimcomp,
Мой вариант.
Код:
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>

Global $aChBx[2][2] = [['First', 'Second'],['Third', 'Fourth']], $iState

GUICreate('пример', 300, 200)
$idRd1 = GUICtrlCreateRadio('Радио 1', 10, 10, 100, 17)
$idRd2 = GUICtrlCreateRadio('Радио 2', 10, 50, 100, 17)
$idChBx1 = GUICtrlCreateCheckbox($aChBx[0][0], 192, 10, 100, 17)
$idChBx2 = GUICtrlCreateCheckbox($aChBx[1][0], 192, 50, 100, 17)
GUICtrlSendMsg($idRd1, $BM_SETCHECK, $BST_CHECKED, 0)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $idRd1, $idRd2
			$iState = GUICtrlSendMsg($idRd2, $BM_GETCHECK, 0, 0)
			GUICtrlSetData($idChBx1, $aChBx[0][$iState])
			GUICtrlSetData($idChBx2, $aChBx[1][$iState])
	EndSwitch
WEnd
 
Верх