Fragen eines Anfängers

  • So kleines Problem mit 2 Fenstern.
    Also ich hab 2 Fenste, wenn man auf den Button "Neuer Eintrag" klickt soll sich das 2. Fenster zeigen. Aber wie bekomme ich es hin das wenn ich das 2. Fenster beenden will nur dieses gehidet wird und nicht gleich beide.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>
    ;~ Hauptfenster
    $f_haupt = GUICreate ("PManager",500,500)
    $neu = GUICtrlCreateButton("Neuer Eintrag",10,20,100,25)
    $entfernen = GUICtrlCreateButton("Eintrag entfernen",10,55,100,25)
    $beenden = GUICtrlCreateButton("Beenden",10,455,100,25)
    $liste = GUICtrlCreateListView("Datum |1.Teilnehmer |2.Teilnehmer |3.Teilnehmer ",125,20,360,460)
    GUISetState(@SW_SHOW)
    ;~ Eintragfenster
    $f_eintrag = GUICreate("Neuer Eintrag",370,160)
    GUICtrlCreateLabel("Jahr",20,23,60,25)
    GUICtrlCreateLabel("Monat",20,53,60,25)
    GUICtrlCreateLabel("Tag",20,85,60,25)
    GUICtrlCreateLabel("1. Teilnehmer",120,23,70,25)
    GUICtrlCreateLabel("2. Teilnehmer",120,53,70,25)
    GUICtrlCreateLabel("3. Teilnehmer",120,85,70,25)
    $e_input_j = GUICtrlCreateInput("",55,20,50,25)
    $e_input_m = GUICtrlCreateInput("",55,50,50,25)
    $e_input_d = GUICtrlCreateInput("",55,80,50,25)
    $e_1t = GUICtrlCreateInput("",200,20,150,25)
    $e_2t = GUICtrlCreateInput("",200,50,150,25)
    $e_3t = GUICtrlCreateInput("",200,80,150,25)
    $e_fertig = GUICtrlCreateButton("Eintragen",20,120,100,25)
    $e_beenden = GUICtrlCreateButton("Abbruch",250,120,100,25)

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

    ;~ Hauptprogramm
    $fenster = 1
    While 1
    $msg = GUIGetMsg()
    Select
    Case ($msg = $GUI_EVENT_CLOSE) Or ( $msg = $beenden ) Or ($msg = $e_beenden )
    Switch $fenster
    Case 1
    ExitLoop
    Case 2
    $fenster = 1
    GUICtrlSetState($f_eintrag,$GUI_HIDE)
    GUICtrlSetState($f_eintrag,@SW_HIDE)
    EndSwitch
    Case ( $msg = $neu ) And ($fenster <> 2 )
    $fenster = 2
    GUISetState(@SW_SHOW)

    EndSelect
    Sleep(10)
    WEnd

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

    Exit

    [/autoit]
    • Offizieller Beitrag

    Hallo!

    Mit GUISetState(@SW_HIDE, $f_eintrag)

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>
    ;~ Hauptfenster
    $f_haupt = GUICreate ("PManager",500,500)
    $neu = GUICtrlCreateButton("Neuer Eintrag",10,20,100,25)
    $entfernen = GUICtrlCreateButton("Eintrag entfernen",10,55,100,25)
    $beenden = GUICtrlCreateButton("Beenden",10,455,100,25)
    $liste = GUICtrlCreateListView("Datum |1.Teilnehmer |2.Teilnehmer |3.Teilnehmer ",125,20,360,460)
    GUISetState(@SW_SHOW)
    ;~ Eintragfenster
    $f_eintrag = GUICreate("Neuer Eintrag",370,160)
    GUICtrlCreateLabel("Jahr",20,23,60,25)
    GUICtrlCreateLabel("Monat",20,53,60,25)
    GUICtrlCreateLabel("Tag",20,85,60,25)
    GUICtrlCreateLabel("1. Teilnehmer",120,23,70,25)
    GUICtrlCreateLabel("2. Teilnehmer",120,53,70,25)
    GUICtrlCreateLabel("3. Teilnehmer",120,85,70,25)
    $e_input_j = GUICtrlCreateInput("",55,20,50,25)
    $e_input_m = GUICtrlCreateInput("",55,50,50,25)
    $e_input_d = GUICtrlCreateInput("",55,80,50,25)
    $e_1t = GUICtrlCreateInput("",200,20,150,25)
    $e_2t = GUICtrlCreateInput("",200,50,150,25)
    $e_3t = GUICtrlCreateInput("",200,80,150,25)
    $e_fertig = GUICtrlCreateButton("Eintragen",20,120,100,25)
    $e_beenden = GUICtrlCreateButton("Abbruch",250,120,100,25)

    ;~ Hauptprogramm
    $fenster = 1
    While 1
    $msg = GUIGetMsg()
    Select
    Case ($msg = $GUI_EVENT_CLOSE) Or ( $msg = $beenden ) Or ($msg = $e_beenden )
    Switch $fenster
    Case 1
    ExitLoop
    Case 2
    $fenster = 1
    GUISetState(@SW_HIDE, $f_eintrag)
    EndSwitch
    Case ( $msg = $neu ) And ($fenster <> 2 )
    $fenster = 2
    GUISetState(@SW_SHOW, $f_eintrag)

    EndSelect
    Sleep(10)
    WEnd

    Exit

    [/autoit]
    • Offizieller Beitrag

    Oder du nutzt die erweiterte GUIGetMsg-Funktion.

    Spoiler anzeigen
    [autoit]

    While 1
    $msg = GuiGetMsg(1) ; erzeugt Array, $msg[0]=Info, $msg[1]=Winhandle, $msg[2]=Controlhandle Steuerelement, $msg[3]/[4]=Maus x/y
    Select
    Case $msg[0] = $GUI_EVENT_CLOSE
    Select
    Case $msg[1] = $f_haupt
    ExitLoop
    Case $msg[1] = $f_eintrag
    GUISetState(@SW_SHOW, $f_eintrag)
    EndSelect
    ;..
    EndSelect
    WEnd

    [/autoit]