hintere gui sperren

  • Hi
    ich möchte die hinterer gui sperren
    nicht verschwinden lassen sondern steuerungs unfähig machen soll wie ein bild sein und wenn ich sie ankliken will soll ein schild kommen
    Ers fenster 2 schliesen

    [autoit]

    #include <GUIConstantsEx.au3>
    start()

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

    Func Start()
    $Gui1 = GUICreate("1 Fenster")
    $Button_8 = GUICtrlCreateButton("Ändern",1,1,90,25)

    GUISetState()

    While 1
    $msg_1 = GUIGetMsg()


    Select
    Case $msg_1 = $GUI_EVENT_CLOSE
    ExitLoop
    case $msg_1 = $button_8
    Name()
    EndSelect
    WEnd
    GUIDelete($Gui1)
    EndFunc

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

    Func name()
    $Gui2 = GUICreate("2 Fenster")


    GUISetState()

    While 1
    $msg_1 = GUIGetMsg()


    Select
    Case $msg_1 = $GUI_EVENT_CLOSE
    ExitLoop

    EndSelect
    WEnd
    GUIDelete( $Gui2)
    EndFunc

    [/autoit]


    thx im vorraus

    • Offizieller Beitrag

    Probier mal das aus , ob es dir Zusagt:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Global $Gui1, $Gui2, $Gui3
    Global $button_1, $Button2
    start()
    Func Start()
    $Gui1 = GUICreate("1 Fenster",default,default,1,1)
    $Button_1 = GUICtrlCreateButton("Ändern", 1, 1, 90, 25)

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

    GUISetState()

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

    While 1
    $msg_1 = GUIGetMsg()

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

    Select
    Case $msg_1 = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg_1 = $Button_1
    GUISetState(@SW_DISABLE, $Gui1)
    Name()
    EndSelect
    WEnd
    GUIDelete($Gui1)
    EndFunc ;==>Start

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

    Func name()
    $Gui2 = GUICreate("2 Fenster" ,default,default,100,100)
    $Button_2 = GUICtrlCreateButton("Ändern", 1, 1, 90, 25)
    GUISetState()

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

    While 3
    $msg_2 = GUIGetMsg()

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

    Select
    Case $msg_2 = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg_2 = $Button_2
    GUISetState(@SW_DISABLE, $Gui2)
    tele()
    EndSelect
    WEnd
    GUISetState(@SW_ENABLE, $Gui1)
    GUIDelete($Gui2)
    EndFunc ;==>name

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

    Func Tele()
    Global $Gui3 = GUICreate("3 Fenster", default,default,200,200)
    GUISetState()

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

    While 2
    $msg_3 = GUIGetMsg()

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

    Select
    Case $msg_3 = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    WEnd
    GUISetState(@SW_ENABLE, $Gui2)
    GUIDelete($Gui3)
    EndFunc ;==>Tele

    [/autoit]


    Wichtig dabei ist das die Variable für die Gui Global deklariert ist , sonst weiß die aufgerufene Funktion nichts von der zuvor erstellten Gui .

    Und an alle : Der folgende Code müßte laufen, tut es aber nicht.Beim schließen eines Fensters wird das Programm mit Fehlermeldung beendet .
    C:\Users\Michael\Desktop\test.au3 (59) : ==> Variable used without being declared.: oder
    C:\Users\Michael\Desktop\test.au3 (42) : ==> Variable used without being declared.:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    start()
    Global $Gui1, $Gui2, $Gui3

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

    Func Start()
    $Gui1 = GUICreate("1 Fenster",default,default,1,1)
    $Button_8 = GUICtrlCreateButton("Ändern", 1, 1, 90, 25)

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

    GUISetState()

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

    While 1
    $msg_1 = GUIGetMsg()

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

    Select
    Case $msg_1 = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg_1 = $Button_8
    GUISetState(@SW_DISABLE, $Gui1)
    Name()
    EndSelect
    WEnd
    GUIDelete($Gui1)
    EndFunc ;==>Start

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

    Func name()
    $Gui2 = GUICreate("2 Fenster" ,default,default,100,100)
    $Button_9 = GUICtrlCreateButton("Ändern", 1, 1, 90, 25)
    GUISetState()

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

    While 3
    $msg_2 = GUIGetMsg()

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

    Select
    Case $msg_2 = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg_2 = $Button_9
    GUISetState(@SW_DISABLE, $Gui2)
    tele()
    EndSelect
    WEnd
    GUISetState(@SW_ENABLE, $Gui1)
    GUIDelete($Gui2)
    EndFunc ;==>name

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

    Func Tele()
    $Gui3 = GUICreate("3 Fenster", default,default,200,200)
    GUISetState()

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

    While 2
    $msg_3 = GUIGetMsg()

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

    Select
    Case $msg_3 = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    WEnd
    GUISetState(@SW_ENABLE, $Gui2)
    GUIDelete($Gui3)
    EndFunc ;==>Tele

    [/autoit]


    Ist das jetzt ein Autoitbug? Die Variableb $Gui1,$Gui2,$Gui2 wurden doch schon am Scriptanfang als Global deklariert . Versteh das ganze jetzt nicht .

    Edit : Vergesst die Fragerei, ich bin ja soooooo blöd. Das kann ja gar nicht gehen wenn ich die Function vor der Deklaration der Variablen aufrufe. :cursing::love: .