Aktivierte Checkbox soll Radio-Button sichtbar machen

  • Hallo zusammen,

    ich habe in einer GUI zehn Checkboxen links und zehn deaktivierte Radio-Controls($GUI_DISABLED) rechts. Nun möchte ich nur durch aktivieren einer Checkbox auf linken Seite, ein bestimmtes Radio-Control aktivieren.

    Löse ich das über GUICtrlSetOnEvent oder wie wäre da der vernünftigste Weg?

    Vielen Dank!

    Hacky

    Einmal editiert, zuletzt von Hacky (8. Juli 2011 um 13:46)

  • Spoiler anzeigen
    [autoit]

    #region - Timestamp
    ;2011-07-07 23:37:35
    #endregion - Timestamp

    [/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #region - GUI Create
    GUICreate('', 100, 100)
    $c1 = GUICtrlCreateCheckbox("hello", 4, 4)
    $r1 = GUICtrlCreateRadio("world", 4, 40)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $r2 = GUICtrlCreateRadio("universe", 4, 70)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState()
    #endregion - GUI Create

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #region - GUI SelectLoop
    While 1
    _check()
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd
    #endregion - GUI SelectLoop

    [/autoit] [autoit][/autoit] [autoit]

    Func _check()
    If BitOR(GUICtrlRead($c1), $GUI_CHECKED) = $GUI_CHECKED Then
    If GUICtrlGetState($r1) = 144 Then GUICtrlSetState($r1, $GUI_ENABLE)
    If GUICtrlGetState($r2) = 144 Then GUICtrlSetState($r2, $GUI_ENABLE)
    EndIf
    If BitOR(GUICtrlRead($c1), $GUI_UNCHECKED) = $GUI_UNCHECKED Then
    ConsoleWrite(GUICtrlGetState($r1) & @CRLF)
    If GUICtrlGetState($r1) = 80 Then GUICtrlSetState($r1, $GUI_DISABLE)
    If GUICtrlGetState($r2) = 80 Then GUICtrlSetState($r2, $GUI_DISABLE)
    EndIf
    EndFunc ;==>_check

    [/autoit]
    Spoiler anzeigen
    [autoit]

    #region - Timestamp
    ;2011-07-07 23:40:40
    #endregion - Timestamp

    [/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #region - GUI Create
    Opt("GUIOnEventMode", 1)
    GUICreate('', 100, 100)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    $c1 = GUICtrlCreateCheckbox("hello", 4, 4)
    GUICtrlSetOnEvent(-1, "_check")
    $r1 = GUICtrlCreateRadio("world", 4, 40)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $r2 = GUICtrlCreateRadio("universe", 4, 70)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState()
    #endregion - GUI Create

    [/autoit] [autoit][/autoit] [autoit]

    #region - GUI SelectLoop
    While 1
    Sleep(100)
    WEnd
    #endregion - GUI SelectLoop

    [/autoit] [autoit][/autoit] [autoit]

    Func _check()
    If BitOR(GUICtrlRead($c1), $GUI_CHECKED) = $GUI_CHECKED Then
    If GUICtrlGetState($r1) = 144 Then GUICtrlSetState($r1, $GUI_ENABLE)
    If GUICtrlGetState($r2) = 144 Then GUICtrlSetState($r2, $GUI_ENABLE)
    EndIf
    If BitOR(GUICtrlRead($c1), $GUI_UNCHECKED) = $GUI_UNCHECKED Then
    ConsoleWrite(GUICtrlGetState($r1) & @CRLF)
    If GUICtrlGetState($r1) = 80 Then GUICtrlSetState($r1, $GUI_DISABLE)
    If GUICtrlGetState($r2) = 80 Then GUICtrlSetState($r2, $GUI_DISABLE)
    EndIf
    EndFunc ;==>_check

    [/autoit] [autoit][/autoit] [autoit]

    Func _exit()
    Exit
    EndFunc ;==>_exit

    [/autoit]
  • Hi, besser so:

    [autoit]


    Global $ar[2], $tate = 128
    Opt("GUIOnEventMode", 1)

    [/autoit][autoit][/autoit][autoit]

    GUICreate('', 100, 100)
    GUISetOnEvent(-3, "_exit")
    $ckb = GUICtrlCreateCheckbox("hello", 4, 4)
    GUICtrlSetOnEvent(-1, "_ckb")
    $ar[0] = GUICtrlCreateRadio("world", 4, 40)
    GUICtrlSetState(-1, 128)
    $ar[1] = GUICtrlCreateRadio("universe", 4, 70)
    GUICtrlSetState(-1, 128)

    [/autoit][autoit][/autoit][autoit]

    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    While Sleep(100)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _ckb()
    $tate = BitXOR($tate, 64, 128)
    For $i = 0 To 1
    GUICtrlSetState($ar[$i], $tate)
    Next
    EndFunc ;==>_ckb

    [/autoit][autoit][/autoit][autoit]

    Func _exit()
    Exit
    EndFunc ;==>_exit

    [/autoit][autoit][/autoit][autoit]

    ; Ende

    [/autoit]