Do ---> Until ???

  • Warum funktioniert diese Funktion nicht?
    Kann mir einer helfen?

    [autoit]

    func Dialog_1()

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

    $Dialog_1 = GUICreate("Sind sie sich Sicher?",366,117)
    $Dialog_1_Button_1 = GUICtrlCreateButton("Ja",58,88,64,23)
    $Dialog_1_Button_2 = GUICtrlCreateButton("Nein",238,88,64,23)
    GUISetState()

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

    Do

    $dialog_msg = GUIGetMsg()

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

    Until $dialog_msg = $Dialog_1_Button_1
    Exit

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

    Do

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

    Until $dialog_msg = $Dialog_1_Button_2

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

    GUISetState(@SW_ENABLE, $MainGUI)
    GUIDelete($Dialog_1)

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

    EndFunc

    [/autoit]
  • Dein

    [autoit]

    $MainGUI

    [/autoit]

    haste noch keine Funktion zugeteilt in Zeile 25

  • Hi,
    der hängt sich am ersten Button auf, er wartet solange, bis der 1. Btton gedrückt Wurde, vorher macht er nicht weiter, also kann auch nix passieren, wenn der 2. Button gedrückt wurde.

  • Ist das der ganze Code weil sry bin noch nicht so gut in Autoit aber möchte dir trozdem gerne helfen

  • sollte ungefähr so sein:

    [autoit]

    #include <GuiConstants.au3>

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

    $MainGUI = GUICreate("Test",500,500)

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

    $1 = GUICtrlCreateButton("HIII",1,1)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $gui_event_close
    GUISetState(@SW_DISABLE, $MainGUI)
    Dialog_1()
    Exit

    Case $msg = $1
    GUISetState(@SW_DISABLE, $MainGUI)
    Dialog_1()

    EndSelect
    WEnd

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

    func Dialog_1()

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

    $Dialog_1 = GUICreate("Sind sie sich Sicher?",366,117)
    $Dialog_1_Button_1 = GUICtrlCreateButton("Ja",58,88,64,23)
    $Dialog_1_Button_2 = GUICtrlCreateButton("Nein",238,88,64,23)
    GUISetState()

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

    Do

    $dialog_msg = GUIGetMsg()

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

    Until $dialog_msg = $Dialog_1_Button_1
    Exit

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

    Do

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

    Until $dialog_msg = $Dialog_1_Button_2

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

    GUISetState(@SW_ENABLE, $MainGUI)
    GUIDelete($Dialog_1)

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

    EndFunc

    [/autoit]
  • Das is eine total zusammengeknaupte Lösung, und keine schöne.
    Aber ich bin zu müde um jetzt noch irgednwas zu basteln.
    Um alle Schleifen zu druchlaufen, wird ungefähr 1 sekunde vergehen, d.h. er reagiert nicht direkt auf das klicken.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>

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

    $MainGUI = GUICreate("Test", 500, 500)

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

    $1 = GUICtrlCreateButton("HIII", 1, 1)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $gui_event_close
    GUISetState(@SW_DISABLE, $MainGUI)
    Dialog_1()
    Exit

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

    Case $msg = $1
    GUISetState(@SW_DISABLE, $MainGUI)
    Dialog_1()

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

    EndSelect
    WEnd

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

    func Dialog_1()
    $Dialog_1 = GUICreate("Sind sie sich Sicher?", 366, 117)
    $Dialog_1_Button_1 = GUICtrlCreateButton("Ja", 58, 88, 64, 23)
    $Dialog_1_Button_2 = GUICtrlCreateButton("Nein", 238, 88, 64, 23)
    GUISetState()

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

    While 1
    if GuiGetmsg() = $Dialog_1_Button_1 then
    exit 0
    EndIf

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

    if GuiGetmsg() = $Dialog_1_Button_2 then
    msgbox(4096, "", "")
    EndIf

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

    Wend
    Endfunc ;==>Dialog_1

    [/autoit]
    • Offizieller Beitrag

    Falscher Ansatz

    2 GUI erstellen, mit GUIGetMsg(1) werden GUI und Event zurückgegeben.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>

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

    $MainGUI = GUICreate("Test",500,500)
    $1 = GUICtrlCreateButton("HIII",1,1)

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

    $Dialog_1 = GUICreate("Sind sie sich Sicher?",366,117)
    $Dialog_1_Button_1 = GUICtrlCreateButton("Ja",58,88,64,23)
    $Dialog_1_Button_2 = GUICtrlCreateButton("Nein",238,88,64,23)

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

    GUISetState(@SW_SHOW, $MainGUI)

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

    While 1
    $msg = GUIGetMsg(1)
    Switch $msg[1] ; Window Handle
    Case $MainGUI
    Switch $msg[0] ; Event
    Case $gui_event_close
    Exit
    Case $1
    GUISetState(@SW_HIDE, $MainGUI)
    GUISetState(@SW_SHOW, $Dialog_1)
    EndSwitch
    Case $Dialog_1
    Switch $msg[0]
    Case $gui_event_close
    GUISetState(@SW_SHOW, $MainGUI)
    GUISetState(@SW_HIDE, $Dialog_1)
    Case $Dialog_1_Button_1
    MsgBox(0, '', 'Button1')
    GUISetState(@SW_SHOW, $MainGUI)
    GUISetState(@SW_HIDE, $Dialog_1)
    Case $Dialog_1_Button_2
    MsgBox(0, '', 'Button2')
    GUISetState(@SW_SHOW, $MainGUI)
    GUISetState(@SW_HIDE, $Dialog_1)
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]