4 whiles gleichzeitig

  • Hi,

    Ich wollte mal fragen ob es geht das mehrere whiles gleichzeitig laufen weil ich hab mit GUICreate ein kleines Fenster aufmachen lassen und dort hab ich 4 Buttons aber es geht nur 1 Button (kommt darauf an welcher im Script oben steht). Und jetzt will ich wissen wie es geht das die whiles gleichzeitig laufen.
    Muss ich da villeicht nur ein kleinen Befehl drüber setzen oder wie geht das.

    danke schonmal

    MFG

    3 Mal editiert, zuletzt von Funny (12. April 2010 um 15:52)

  • Ineinander verschachteln ist kein Problem, aber ich bezweifle, dass das den gewünschten Erfolg bringt :huh: .
    Ich schätze, dass die mit Adlibregister (falls diese Funktion nicht existiert -> Update deine AutoIt version)
    dein Problem zu lösen ist.
    Sollte es nicht helfen, dann wäre es besser wenn du den Code postest!

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • also 4 endlossschleifen gleichzeitig, geht meines wissens nach nicht... macht auch keinen wirklichen sinn und brauch man eigentlich auch nicht.

    aber mit skript wäre dir sicher leichter und besser zu helfen.

    greetz Blade

    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.

  • Bitte ließ dir mal die Hilfe zum Thema Message Loop bzw. On Event Mode durch.
    So sieht eine MessageLoop mit mehreren Buttons aus.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    $hWnd = GUICreate("Beispiel", 200, 100)
    $Button1 = GUICtrlCreateButton("Button1", 5, 5, 50, 25)
    $Button2 = GUICtrlCreateButton("Button2", 5, 30, 50, 25)
    $Button3 = GUICtrlCreateButton("Button3", 5, 55, 50, 25)
    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    MsgBox(0,"","Button1")
    Case $Button2
    MsgBox(0,"","Button2")
    Case $Button3
    MsgBox(0,"","Button3")
    EndSwitch
    WEnd

    [/autoit]


    Oder meintest du das anders? :huh:

  • Spoiler anzeigen
    [autoit]

    HotKeySet("{ESC}","_Exit")

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

    #include <GUIConstants.au3>

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

    $hWnd = GUICreate("Test", 400, 200)
    $dutton = GUICtrlCreateButton('1-6', 5, 25, 100, 25)
    $dutton2 = GUICtrlCreateButton('6-12', 5, 50, 100, 25)
    $dutton3 = GUICtrlCreateButton('12-18', 5, 75, 100, 25)
    $dutton4 = GUICtrlCreateButton('18+', 5, 100, 100, 25)
    GUISetState()

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


    $gui2 = GUICreate('Test', 400, 200, -1, -1)
    GUISetState(@SW_HIDE, $gui2)
    $Button1 = GUICtrlCreateButton("Junge", 5, 25)
    $Button2 = GUICtrlCreateButton("Mädchen", 5, 50)
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $dutton
    GUISetState(@SW_SHOW, $gui2)
    EndSelect
    WEnd

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


    $gui3 = GUICreate('Test', 400, 200, -1, -1)
    GUISetState(@SW_HIDE, $gui3)
    $Button1 = GUICtrlCreateButton("Junge", 5, 25)
    $Button2 = GUICtrlCreateButton("Mädchen", 5, 50)
    While 2
    $msg = GUIGetMsg()
    Select
    Case $msg = $dutton2
    GUISetState(@SW_SHOW, $gui3)
    EndSelect
    WEnd

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


    $gui4 = GUICreate('Test, 400, 200, -1, -1)
    GUISetState(@SW_HIDE, $gui4)
    $Button1 = GUICtrlCreateButton("Junge", 5, 25)
    $Button2 = GUICtrlCreateButton("Mädchen", 5, 50)

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

    While 3
    $msg = GUIGetMsg()
    Select
    Case $msg = $dutton3
    GUISetState(@SW_SHOW, $gui4)
    EndSelect
    WEnd

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

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

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

    EndSwitch
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]

    und da hab ich das problem das jetzt nur ein button geht und die anderen nicht

  • So?

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    ;Standart Includes

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

    $Form1 = GUICreate("Test", 329, 436, 486, 221)
    $Button1 = GUICtrlCreateButton("Button1", 128, 104, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 128, 160, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Button3", 128, 216, 75, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("Button4", 128, 272, 73, 25, $WS_GROUP)
    GUISetState(@SW_SHOW);Standart Gui ist sichtbar

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

    $Form2 = GUICreate("Form1", 625, 259, 192, 124);Gui wird erstellt, aber versteckt.
    $Button5 = GUICtrlCreateButton("Button1", 200, 128, 75, 25, $WS_GROUP)
    $Button6 = GUICtrlCreateButton("Button2", 352, 128, 75, 25, $WS_GROUP)
    GUISetState(@SW_HIDE);Hier wird sie versteckt

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

    While 1;Die Schleife für alle Buttons
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUISetState (@SW_SHOW, $Form2);Wenn der Button gedrückt wird, dann wird die 2 Form sichtbar
    Case $Button2
    MsgBox (0, "", "Reaktion")
    Case $Button3
    MsgBox (0, "", "Reaktion")
    Case $Button4
    MsgBox (0, "", "Reaktion")
    Case $Button5 ;Du kannst die neuen Buttons auch hier rein schreiben
    MsgBox (0, "", "Reaktion")
    Case $Button6 ;Hier auch einer der 2. Form!
    MsgBox (0, "", "Reaktion")
    EndSwitch
    WEnd

    [/autoit]
  • Spoiler anzeigen
    [autoit]


    HotKeySet("{ESC}","_Exit")
    #include <GUIConstants.au3>
    $hWnd = GUICreate("Test", 400, 200)
    $dutton = GUICtrlCreateButton('1-6', 5, 25, 100, 25)
    $dutton2 = GUICtrlCreateButton('6-12', 5, 50, 100, 25)
    $dutton3 = GUICtrlCreateButton('12-18', 5, 75, 100, 25)
    $dutton4 = GUICtrlCreateButton('18+', 5, 100, 100, 25)
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $dutton
    $gui2 = GUICreate("Test", 400, 200, -1, -1)
    GUISetState(@SW_SHOW, $gui2)
    $Button1 = GUICtrlCreateButton("Junge", 5, 25)
    $Button2 = GUICtrlCreateButton("Mädchen", 5, 50)
    Case $dutton2
    $gui3 = GUICreate("Test", 400, 200, -1, -1)
    GUISetState(@SW_SHOW, $gui3)
    $Button1 = GUICtrlCreateButton("Junge", 5, 25)
    $Button2 = GUICtrlCreateButton("Mädchen", 5, 50)
    Case $dutton3
    $gui4 = GUICreate("Test", 400, 200, -1, -1)
    GUISetState(@SW_SHOW, $gui4)
    $Button1 = GUICtrlCreateButton("Junge", 5, 25)
    $Button2 = GUICtrlCreateButton("Mädchen", 5, 50)
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]


    Hilft dir das so?


    Edit:\\ ich bin einfach zu langsam...^^

    greetz Blade

    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.

    Einmal editiert, zuletzt von Blade (12. April 2010 um 15:54)

  • Kein Problem Blade.
    Deins ist eh besser ^^

    Denn du hast dich direkt auf sein Skript bezogen und ich hab nur ne Hilfe gegeben =D