warten bis einer von mehreren radiobuttons ausgewaehlt ist

  • hallo leute,

    ich habe folgendes problem: ich erstelle in einem gui per schleife unterschiedlich viele radionbuttons, die zu einer gruppe zusammengefasst sind und keiner vorausgewaehlt ist. mein prograemmchen soll erst weiter arbeiten, wenn einer der radiobuttons gedrueckt wurde.

    ich hab momentan keinen richtigen ansatz, wie ich die while-wend-schleife gestalten muss, dass das mit dem warten auf einen gedrueckten radiobutton funktioniert.

    muss ich in der while-wend-schleife eine weitere schleife einbauen, die mir nacheinander die Status der radiobuttons abfraegt oder gibt’s da was einfacheres?

    so long

    sam

    Einmal editiert, zuletzt von sam ghost (1. März 2010 um 14:44)

  • mach doch nen ganz normalen MessageLoop. Auf was willst du denn warten? Die warten doch immer.

  • hi m-obi,

    ich habe in meinem 'ganz normalen message loop' momentan drin, dass er beim schliessen des fensters und bei abbrechen beendet, bei druecken des ok-buttens laeuft das script weiter, egal, ob ein radiobutton gedrueckt ist oder nicht, weil ich eben nicht weiss, wie ich diese abfrage einbringen soll.

    sam

  • Mit

    [autoit]

    If BitAnd(GUICtrlRead($Radio),$GUI_CHECKED) Then

    [/autoit]


    kannst du die in einer For-Schleife abfragen.

  • Hallo sam_ghost,

    warum DISABLE'st du den Button nicht direkt nach dem erstellen und ENABLE'st in erst wenn ein Radio ausgewählt wurde? Beispiel:

    Spoiler anzeigen
    [autoit]

    ;#include <ButtonConstants.au3>
    ;#include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    ;#include <WindowsConstants.au3>

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

    Global $idRadio[9]

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

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Ein Radio muss ausgewählt sein", 413, 350, 302, 218)
    GUICtrlCreateGroup("Datei zum kopieren auswählen:", 10, 10, 190, 200)
    for $i = 0 to 8
    $idRadio[$i] = GUICtrlCreateRadio("Radio " & $i , 120, 35+$i*30, 97, 17)
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
    $idbtnGO = GUICtrlCreateButton("Button1", 120, 35 + 9*30, 141, 25)
    GUICtrlSetState($idbtnGO,$GUI_DISABLE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $idbtnGO
    #cs
    if BitAND(GUICtrlRead($Radio1),$GUI_CHECKED) = $GUI_CHECKED then Run("Notepad.exe", "", @SW_MAXIMIZE)
    if BitAND(GUICtrlRead($Radio2),$GUI_CHECKED) = $GUI_CHECKED then
    Run("Calc.exe", "", @SW_MAXIMIZE)
    WinWaitActive("Rechner")
    send(GUICtrlRead($Input1),1)
    send("+",1)
    send(GUICtrlRead($Input2),1)
    send("=",1)
    EndIf
    #ce
    case $idRadio[0] to $idRadio[8]
    GUICtrlSetState($idbtnGO,$GUI_ENABLE)
    EndSwitch
    WEnd

    [/autoit]

    mfg (Auto)Bert