GUI nach Func in ausgangszustand zurücksetzen?

  • Guten tag,

    ich habe eine Menue, wo jedes Submenue auf ne eigene Func zugreift.
    Wenn ich nun eine beendet habe und über das menu in eine neue wechsel,
    habe ich im Gui noch die Label´s etc von der vorhergehenden Func.

    Kann man den Gui irgendwie auf Start position zurücksetzen nach beenden einer Func?
    Ev nen Befehls link für mich wo ich nachlesen kann?

    habe gesehen mit
    GUISetState(@SW_HIDE, $Form1) kann man einzelne Form verbergen.
    Ich habe aber nur eine in der Das grund menu eingebunden ist.
    Dies ist wie Tabs aufgebaut.

    Kann ich in einer Form mehrere verschachteln?

    Einmal editiert, zuletzt von DummDumm (30. Juni 2009 um 14:11)

  • oO Überfordret bin beim rausfinden was mir fehlt, so schaut mein script aus aber irgendwie wie gesagt überschneiden sich die Labels und Buttons etc sobald ich die Funktion wechsel

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Metin2 Tester Hilfe", 625, 443, 192, 124)
    $MenuItem1 = GUICtrlCreateMenu("&About")
    $MenuItem2 = GUICtrlCreateMenuItem("Hilfe", $MenuItem1)
    $MenuItem3 = GUICtrlCreateMenu("&Namen")
    $MenuItem4 = GUICtrlCreateMenuItem("Vor", $MenuItem3)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    If $nMsg=$MenuItem4 Then Test1()
    If $nMsg=$MenuItem2 Then Help()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd
    Func Test1()

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

    $Label1 = GUICtrlCreateLabel("Name1:", 88, 80, 61, 17)
    $Input1 = GUICtrlCreateInput("Input1", 224, 80, 121, 21)
    $Label2 = GUICtrlCreateLabel("Name2:", 88, 112, 55, 17)
    $Input2 = GUICtrlCreateInput("Input2", 224, 112, 121, 21)
    $nametest = GUICtrlCreateButton("Setzen", 16, 145, 75, 25, $WS_GROUP)

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

    While 1
    $Setmsg=GuiGetMsg()
    If $Setmsg=-3 Then Exit
    If $Setmsg=$nametest Then Nameschreiben()
    If $msg=$MenuItem4 Then Test1()
    If $msg=$MenuItem2 Then Help()
    Global $testn2 = GUICtrlRead($Input1)
    Global $testn1 = GUICtrlRead($Input2)
    WEnd
    EndFunc
    Func Nameschreiben()

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

    WinActivate ("Bprog")
    send ("{ENTER}")
    send("Name1 "&$testn1&" Name2 "&$testn2)
    send ("{ENTER}")
    EndFunc

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

    Func help()
    $help1 = GUICtrlCreateButton("Bedienung", 16, 48, 75, 25, $WS_GROUP)

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

    While 1
    $msg=GuiGetMsg()
    If $msg=-3 Then Exit
    If $msg=$help1 Then h1()
    If $msg=$MenuItem4 Then Test1()
    If $msg=$MenuItem2 Then Help()
    Wend

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

    EndFunc
    Func h1()
    WinActivate ("help")
    send ("{ENTER}")
    send("Bedienung")
    send ("{ENTER}")
    EndFunc

    [/autoit]
  • sorry ich weiß ncih was du von mir willst
    also zuerst solltest du das ncih verstecken sondern die funktion

    [autoit]


    guictrldelete

    [/autoit]


    verwenden

    und bitte schreib jetzt nochmal schritt für schritt auf was du willst und wo die fehler liegen
    und in angemessenem deutsch mit kommas und punkten ....

    dann bin ich sicher das wir dir helfen können

  • Okay sry.

    Geplant ist in dem Script oben das:

    Ich will hier ein Tableiste haben also Mainmenu
    Hier sind Submenus angebracht wo immer mehr punkte werden.

    Ich will aber zwischen den Funktionen wechseln können.
    Also Zb ich gebe die Namen ein, sende die ab.
    UNd will danach aber ggf die Hilfe nutzen.

    Nun sollten die Input boxen vom vorhergehenden Namens Menu gelöscht werden.
    So das nur der bzw dann auch die Hilfebutton sichtbar sind.
    Umgekehr natürlich auch ..

  • sorry ich weiß ncih was du von mir willst
    also zuerst solltest du das ncih verstecken sondern die funktion

    [autoit]


    guictrldelete

    [/autoit]


    verwenden

    und bitte schreib jetzt nochmal schritt für schritt auf was du willst und wo die fehler liegen
    und in angemessenem deutsch mit kommas und punkten ....

    dann bin ich sicher das wir dir helfen können


    :D

    Zum Problem: Irgendwie ist das Skript etwas konfus aufgebaut.
    Schau mal hier: [ offen ] Probleme mit der GUI
    Vielleicht solltest du es so aufbauen?

  • Also mehrer Guis und nur anzeigen was ich gerade benötige, jedoch will ich ja das dies immer gleich ist:
    Der Hintergrund okay denn kann man ja setzen sowie größe
    aber das Menu muss ich dann jedesmal neu einbinden?


    [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Metin2 Tester Hilfe", 625, 443, 192, 124)
    $MenuItem1 = GUICtrlCreateMenu("&About")
    $MenuItem2 = GUICtrlCreateMenuItem("Hilfe", $MenuItem1)
    $MenuItem3 = GUICtrlCreateMenu("&Namen")
    $MenuItem4 = GUICtrlCreateMenuItem("Vor", $MenuItem3)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Habe ich das richtig verstanden?
    Also Form1
    Form2 etc und dann Show Form1 Hide Form2 usw

  • Habe das nun so aber geht nicht:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Testscript", 625, 443, 192, 124)
    $MenuItem1 = GUICtrlCreateMenu("&Help")
    $MenuItem8 = GUICtrlCreateMenu("S&et´s")
    $MenuItem13 = GUICtrlCreateMenuItem("Namen", $MenuItem8)
    $Label1 = GUICtrlCreateLabel("Name:", 88, 80, 61, 17)
    $Input1 = GUICtrlCreateInput("Input1", 224, 80, 121, 21)
    $Label2 = GUICtrlCreateLabel("Name2", 88, 112, 55, 17)
    $Input2 = GUICtrlCreateInput("Input2", 224, 112, 121, 21)
    $namesetz = GUICtrlCreateButton("Setzen", 16, 145, 75, 25, $WS_GROUP)
    Global $name2 = GUICtrlRead($Input1)
    Global $name1 = GUICtrlRead($Input2)
    BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    #EndRegion ### END Koda GUI section ###

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Testscript", 625, 443, 192, 124)
    $MenuItem1 = GUICtrlCreateMenu("&Help")
    $MenuItem8 = GUICtrlCreateMenu("S&et´s")
    $MenuItem13 = GUICtrlCreateMenuItem("Namen", $MenuItem8)
    $Label1 = GUICtrlCreateLabel("Name:", 88, 80, 61, 17)
    $Input1 = GUICtrlCreateInput("Input1", 224, 80, 121, 21)
    $Label2 = GUICtrlCreateLabel("Name2", 88, 112, 55, 17)
    $Input2 = GUICtrlCreateInput("Input2", 224, 112, 121, 21)
    $namesetz = GUICtrlCreateButton("Setzen", 16, 145, 75, 25, $WS_GROUP)
    Global $name2 = GUICtrlRead($Input1)
    Global $name1 = GUICtrlRead($Input2)
    BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    #EndRegion ### END Koda GUI section ###

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

    while 1
    $nMsg = GUIGetMsg()

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

    Switch $nMsg
    Case $MenuItem13
    GUISetState(@SW_HIDE, $Form1)
    GUISetState(@SW_SHOW, $Form2)

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

    EndSwitch
    WEnd

    [/autoit]
  • Mhm verstehs nicht ganz. Du solltest dir angewöhnen den Variablen eindeutige Bezeichnungen zu geben und Doppelbelegungen zu vermeiden.

    So?

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Gui1", 625, 443, 192, 124)
    $MenuItem1 = GUICtrlCreateMenu("&Help")
    $MenuItem8 = GUICtrlCreateMenu("S&et´s")
    $MenuItem13 = GUICtrlCreateMenuItem("Namen", $MenuItem8)
    $Label1 = GUICtrlCreateLabel("Name:", 88, 80, 61, 17)
    $Input1 = GUICtrlCreateInput("Input1", 224, 80, 121, 21)
    $Label2 = GUICtrlCreateLabel("Name2", 88, 112, 55, 17)
    $Input2 = GUICtrlCreateInput("Input2", 224, 112, 121, 21)
    $namesetz = GUICtrlCreateButton("Setzen", 16, 145, 75, 25, $WS_GROUP)
    Global $name2 = GUICtrlRead($Input1)
    Global $name1 = GUICtrlRead($Input2)
    BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS)
    #EndRegion ### END Koda GUI section ###

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Gui2t", 625, 443, 192, 124)
    $MenuItem2 = GUICtrlCreateMenu("&Help")
    $MenuItem9 = GUICtrlCreateMenu("S&et´s")
    $MenuItem14 = GUICtrlCreateMenuItem("Namen", $MenuItem9)
    $Label1 = GUICtrlCreateLabel("Name:", 88, 80, 61, 17)
    $Input1 = GUICtrlCreateInput("Input1", 224, 80, 121, 21)
    $Label2 = GUICtrlCreateLabel("Name2", 88, 112, 55, 17)
    $Input2 = GUICtrlCreateInput("Input2", 224, 112, 121, 21)
    $namesetz = GUICtrlCreateButton("Setzen", 16, 145, 75, 25, $WS_GROUP)
    Global $name2 = GUICtrlRead($Input1)
    Global $name1 = GUICtrlRead($Input2)
    BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS)
    #EndRegion ### END Koda GUI section ###

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

    while 1
    $nMsg = GUIGetMsg()

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

    Switch $nMsg
    case -3
    exit
    Case $MenuItem13
    GUISetState(@SW_HIDE, $Form1)
    GUISetState(@SW_SHOW, $Form2)

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

    Case $MenuItem14
    GUISetState(@SW_HIDE, $Form2)
    GUISetState(@SW_SHOW, $Form1)

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

    EndSwitch
    WEnd

    [/autoit]