rechnen mit "GUICtrlCreateRadio"

  • Hallo.

    Ich habe ein GUI erstellt, in dem sind sieben Radio-Buttons.
    Jeder Button hat einen Wert (Eins bis Sieben)
    Ich möchte nun, das wenn man auf OK drückt, das er mir die Werte zusammen rechnet von den Radiobutton, die aktiviert sind und in einer Msg-Box die zusammengezählten Werte als eine Zahl ausgibt.

    Habe nichts in der Hilfe gefunden, weiß daher auch gar nicht ob es überhaupt möglich ist.

    Kann mir da jemand helfen?

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("Form1", 534, 447, 252, 247)
    $Wert1 = GUICtrlCreateRadio("Wert 1", 8, 8, 57, 25)
    $Wert2 = GUICtrlCreateRadio("Wert 2", 8, 32, 57, 25)
    $Wert3 = GUICtrlCreateRadio("Wert 3", 8, 56, 57, 25)
    $Wert4 = GUICtrlCreateRadio("Wert 4", 8, 80, 57, 25)
    $Wert5 = GUICtrlCreateRadio("Wert 5", 8, 104, 57, 25)
    $Wert6 = GUICtrlCreateRadio("Wert 6", 8, 128, 57, 25)
    $Wert7 = GUICtrlCreateRadio("Wert 7", 8, 152, 57, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    LG Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Hallo!

    Von den RadioButton kann immer nur einer aktiv sein! Willst Du nur ermitteln welcher aktiv ist?

    Wenn mehrere Werte möglich sein sollen muss man jeden RadioButton einer eigenen Gruppe zuweisen oder CheckBox arbeiten.

    Edit:
    Hier mal die Lösung mit den CheckBoxen:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    Dim $Werte[7]
    Global $Ergebnis

    $Form1 = GUICreate("Form1", 534, 447, 252, 247)
    For $iIndex = 0 To 6
    $Werte[$iIndex] = GUICtrlCreateCheckbox("Wert "& $iIndex + 1, 8, 8 + 24 * $iIndex, 57, 25)
    Next

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

    $ButOK = GUICtrlCreateButton("OK", 20, 220, 50)
    GUISetState(@SW_SHOW)


    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    Case $ButOK
    $Ergebnis = 0
    For $iIndex = 0 To 6
    If BitAND(GUICtrlRead($Werte[$iIndex]),$GUI_CHECKED) = $GUI_CHECKED Then
    $Ergebnis += $iIndex + 1
    EndIf
    Next
    MsgBox(0,"",$Ergebnis)

    EndSwitch
    WEnd

    [/autoit]
  • Hallo Bernd.

    Danke für die Hilfe.

    Kann ich leider nur für GUI Nr.1 verwenden. Dachte das ich damit die nächsten drei Guis auch abfragen kann nach dem gleichen Sytem, aber bei den nächsten drei Guis sind die Zahlen nicht mehr 1-7, sondern leider 1,2,4,8,16,32, und 64 und da ist es dann so, wenn einer die 1, die 4 und die 8 auswählt soll 13 ausgegeben werden (war ein Beispiel).

    Aber dennoch herzlichen Dank.

    LG Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Geht auch ist alles nur eine Frage der richtigen Formel:

    [autoit]


    #include <GUIConstants.au3>

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

    Dim $Werte[7]
    Global $Ergebnis

    $Form1 = GUICreate("Form1", 534, 447, 252, 247)
    For $iIndex = 0 To 6
    $Werte[$iIndex] = GUICtrlCreateCheckbox("Wert "& 2^$iIndex, 8, 8 + 24 * $iIndex, 57, 25)
    Next

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

    $ButOK = GUICtrlCreateButton("OK", 20, 220, 50)
    GUISetState(@SW_SHOW)


    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    Case $ButOK
    $Ergebnis = 0
    For $iIndex = 0 To 6
    If BitAND(GUICtrlRead($Werte[$iIndex]),$GUI_CHECKED) = $GUI_CHECKED Then
    $Ergebnis += 2^$iIndex
    EndIf
    Next
    MsgBox(0,"",$Ergebnis)

    EndSwitch
    WEnd

    [/autoit]
  • Bernd, Du bist super.
    Läuft nun sehr gut. Jetzt ganz ich mich an das gesamte Umfeld machen.

    tausend Dank !!!!

    LG Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl