Problem mit Radio-Controls

  • Hallo Leute,

    da ich ganz frisch
    hier bin stell ich mich erst mal vor.

    Moin, Feirell ist
    anwesend :)

    Mein Problem ist folgendes, ich schreibe seit
    gestern an einem kleinen AutoIt Programm was im endefekt ein GUI
    haben soll.
    Dieses hat 3 Radio's die den momentanen Status
    anzeigen, sie sollten nicht klickbar sein.
    Ich hab schon bei
    Google gesucht und auch in der Hilfe mich umgeschaut.
    Nur leider
    alles ohne Erfolg.

    Könnt ihr mir da ein Tipp geben
    ?

    mfg,
    Feirell

    Einmal editiert, zuletzt von Feirell (28. März 2013 um 12:08)

  • Hi,

    Controls kannst du mit GUICtrlSetState($controlID, $GUI_DISABLE) deaktivieren.
    $GUI_DISABLE findest du in der Datei GUIConstantsEx.au3, diese kannst du mit #include <GUIConstantsEx.au3> am Anfang deines Skriptes einbinden.

    MfG, James

  • Vielen dank für deine Antwort.
    Zwei Fragen noch:

    • Kann man die selectierung dieser Radios im nach hinein noch mit dem Script ändern oder ist das dann das durch das disable ausgeschlossen ?
    • kann man auch mehrer mit einer funktion disablen ?
  • Klar kannst du mehrere Controls mit einer Funktion disablen

    Hab da mal fix was zusammengebastelt:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Global $hRadio[3], $bState = True

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

    Global $hGUI = GUICreate("TestGUI", 100,100)
    For $i = 0 To UBound($hRadio)-1
    $hRadio[$i] = GUICtrlCreateRadio("Radio "&$i+1, 10, 10 +20*$i,80, 18)
    Next
    GUICtrlSetState($hRadio[0], $GUI_CHECKED)
    Global $hBTN = GUICtrlCreateButton("Disable Radios", 10, 75, 80, 20)

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

    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $hBTN
    _Disable()
    EndSwitch
    WEnd

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

    Func _Disable()
    If $bState Then
    For $i = 0 To UBound($hRadio)-1
    GUICtrlSetState($hRadio[$i], $GUI_DISABLE)
    Next
    GUICtrlSetData($hBTN, "Enable Radios")
    $bState = False
    Else
    For $i = 0 To UBound($hRadio)-1
    GUICtrlSetState($hRadio[$i], $GUI_ENABLE)
    Next
    GUICtrlSetData($hBTN, "Disable Radios")
    $bState = True
    EndIf
    EndFunc

    [/autoit]
    UNPLEASANT SPOILER

    You just lost the game!

    Einmal editiert, zuletzt von shadow667 (28. März 2013 um 11:58)

  • Du könntest theoretisch mehrere mit einer Schleife disablen
    For $i = 1 to 4
    GUICtrlSetState($Radio&$i, $GUI_DISABLE)
    Next