GUI2 wirklich schließen und nciht verstecken

  • Hallo.

    Ich möchte gerne, das sich GUI2 wirklich schließt und nicht das es versteckt wird.
    Mit Hide & Show kann man ja GUIs aus- bzw. einblenden, aber ich möchte das es wirklich geschlossen wird.
    Grund ist, das Daten die in einem GUI eingetragen sind wieder da sind wenn man es erneut öffnet, wenn man mit Hide & Show arbeitet, was ich aber nicht will.

    Hier mal so wie ich es mir gedacht habe:

    Spoiler anzeigen
    [autoit]


    #include <GuiConstants.au3>

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

    $1_GUI = GuiCreate("MyGUI1", 392, 316,-1, -1)
    $Label_1 = GuiCtrlCreateLabel("Bitte Vorname eingeben", 10, 60, 130, 20)
    $Button_1 = GuiCtrlCreateButton("Weiter zu Gui 2", 240, 290, 150, 20)
    $Input_1 = GuiCtrlCreateInput("Vorname", 140, 60, 150, 20)

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

    $2_GUI = GuiCreate("MyGUI2", 392, 316,-1, -1)
    $Label_2 = GuiCtrlCreateLabel("Bitte Nachname eingeben", 10, 60, 130, 20)
    $Input_2 = GuiCtrlCreateInput("Nachname", 140, 60, 150, 20)
    $exit = GuiCtrlCreateButton("GUI 2 schließen und zurück zu GUI 1", 40, 290, 250, 20)

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

    GUISetState(@SW_SHOW, $1_GUI)

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

    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop

    Case $msg = $Button_1
    GUISetState(@SW_HIDE, $1_GUI)
    GUISetState(@SW_SHOW, $2_GUI)

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

    Case $msg = $exit
    GUISetState(@SW_SHOW, $1_GUI) ; GUI-1 soll eingeblendet werden "zurück zu GUI1"
    Exit ; GUI2 soll wirklich geschlossen werden und nicht versteckt (HIDE) werden.

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

    EndSelect
    WEnd
    Exit

    [/autoit]

    LG, Crazy-A.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Crazy-A (28. September 2008 um 16:19)

  • Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>

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

    $1_GUI = GuiCreate("MyGUI1", 392, 316,-1, -1)
    $Label_1 = GuiCtrlCreateLabel("Bitte Vorname eingeben", 10, 60, 130, 20)
    $Button_1 = GuiCtrlCreateButton("Weiter zu Gui 2", 240, 290, 150, 20)
    $Input_1 = GuiCtrlCreateInput("Vorname", 140, 60, 150, 20)

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

    $2_GUI = GuiCreate("MyGUI2", 392, 316,-1, -1)
    $Label_2 = GuiCtrlCreateLabel("Bitte Nachname eingeben", 10, 60, 130, 20)
    $Input_2 = GuiCtrlCreateInput("Nachname", 140, 60, 150, 20)
    $exit = GuiCtrlCreateButton("GUI 2 schließen und zurück zu GUI 1", 40, 290, 250, 20)

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

    GUISetState(@SW_SHOW, $1_GUI)

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

    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop

    Case $msg = $Button_1
    GUISetState(@SW_HIDE, $1_GUI)
    GUISetState(@SW_SHOW, $2_GUI)

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

    Case $msg = $exit
    GUISetState(@SW_SHOW, $1_GUI) ; GUI-1 soll eingeblendet werden "zurück zu GUI1"
    GUIDelete($2_GUI); GUI2 soll wirklich geschlossen werden und nicht versteckt (HIDE) werden.

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

    EndSelect
    WEnd
    Exit

    [/autoit]
    • Offizieller Beitrag

    Was stört dich an @SW_HIDE ? Speicherplatzsorgen?
    Wenn du die GUI im weiteren Programm definitiv nicht mehr benötigst, kannst du sie, wie bereits in den vorigen Posts erwähnt, mit GUIDelete() "entsorgen".
    Falls du sie aber nochmals benötigst, wäre das hochgradig schwachsinnig sie jedesmal neu zu erstellen. ;)

  • Hallo BugFix.

    Hast ja eigentlich RECHT, aber ich habe mal dank den Hilfen folgendes zusammen gepackt:

    Spoiler anzeigen
    [autoit]


    #include <GuiConstants.au3>

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

    $1_GUI = GuiCreate("MyGUI1", 392, 316,-1, -1)
    $Label_1 = GuiCtrlCreateLabel("Bitte Vorname eingeben", 10, 60, 130, 20)
    $Button_1 = GuiCtrlCreateButton("Weiter zu Gui 2", 240, 290, 150, 20)
    $Input_1 = GuiCtrlCreateInput("Vorname", 140, 60, 150, 20)

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

    $2_GUI = GuiCreate("MyGUI2", 392, 316,-1, -1)
    $Label_2 = GuiCtrlCreateLabel("Bitte Nachname eingeben", 10, 60, 130, 20)
    $Input_2 = GuiCtrlCreateInput("Nachname", 140, 60, 150, 20)
    $exit = GuiCtrlCreateButton("GUI 2 schließen und zurück zu GUI 1", 40, 290, 250, 20)
    GUISetState(@SW_SHOW, $1_GUI)

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

    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop

    Case $msg = $Button_1
    GUISetState(@SW_HIDE, $1_GUI)
    GUISetState(@SW_SHOW, $2_GUI)

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

    Case $msg = $exit
    GUISetState(@SW_SHOW, $1_GUI) ; GUI-1 soll eingeblendet werden "zurück zu GUI1"
    GUIDelete($2_GUI); GUI2 soll wirklich geschlossen werden und nicht versteckt (HIDE) werden.
    Gui2()
    EndSelect
    WEnd
    Exit

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

    Func Gui2()
    $2_GUI = GuiCreate("MyGUI2", 392, 316,-1, -1)
    $Label_2 = GuiCtrlCreateLabel("Bitte Nachname eingeben", 10, 60, 130, 20)
    $Input_2 = GuiCtrlCreateInput("Nachname", 140, 60, 150, 20)
    $exit = GuiCtrlCreateButton("GUI 2 schließen und zurück zu GUI 1", 40, 290, 250, 20)
    EndFunc

    [/autoit]

    Ich bin ja, wie Du weißt, immer dabei meine mir selber gestellten Fragen dank diesem super Forum zu beantworten.
    Aber die andere Lösung ist für meine Frage, ob es nicht sinnvoller ist, den Inhalt eines Editfeldes beim zweifachen anklichen eines Buttons einfach zuvor zu löschen.

    Also, Lsg. gefunden und Problem somit gelöst.

    Danke an alle !

    LG,
    Crazy-A.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr