Mehrere GUIs OnEventMode PROBLEM

  • Hallo alle,
    Ich habe das Problem, dass ich eine GUI öffnen möchte dann über einen button auf dieser eine funktione aufrufen möchte und eine andere GUI soll sich öffnen.
    Es funktioniert auch alles super :) bis zu dem Zeitpunkt, wo die 2te GUI erstellt wird. Diese Zweite GUI nimmt keine Buttondrücke entgegen. Auch wenn die erste, wo es ja vorab wunderbar funktioniert geschlossen wird und wieder geöffnet wird habe ich das gleiche Problem.

    Ich habe einmal einen Code wo diese Problem auftritt mit gepostet ich hoffe ihr könnt mir helfen =)


    Vielen Dank für alle Antworten.
    ;)
    primaauto(Lucas)

    Spoiler anzeigen
    [autoit]


    global $gui
    Opt("GUIOnEventMode",1)
    #include <GUIConstants.au3>

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

    func start()
    $gui=inputbox("gui","gui")
    gui()
    EndFunc

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

    func close()
    guidelete()
    start()
    EndFunc

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

    func gui()
    if $gui=="1" Then

    GUICreate("GUI 1",200,200)
    guictrlcreatelabel("GUI 1",100,100)
    guictrlcreatebutton("ENDE",40,40)
    guictrlsetonevent(-1,"close")
    guisetonevent($GUI_EVENT_Close,"close")
    guisetstate(@SW_SHOW)
    while 1
    sleep(1000)
    WEnd

    Elseif $gui=="2" Then

    GUICreate("GUI 2",200,200)
    guictrlcreatelabel("GUI 2",100,100)
    guictrlcreatebutton("ENDE",40,40)
    guictrlsetonevent(-1,"close")
    guisetonevent($GUI_EVENT_Close,"close")
    guisetstate(@SW_SHOW)
    while 1
    sleep(1000)
    WEnd

    Else
    msgbox(4096,"Fehler","Ungültiger Wert")
    start()
    EndIf

    EndFunc

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

    start()

    [/autoit]
  • du must buttons und gui´s ( bei den meisten guictrl.. befehlen) eine vari zuweisen $Form = Guicreate()
    setzt deine sleep befehle in den while schleifen auf 100 oder 75
    und du must includes noch einsetzen
    les dir am besten immer die hilfedatei durch ( die gibts in deutsch) :thumbup:

  • Also ok...
    Ich hab das jetzt mal ausprobiert und vor alle Createctrl bzw GuiCreate ne andere variable gesetzt leider funktioniert das immernoch nicht =( bei der ersten GUI funktioniert das ja aber bei der zweiten halt nicht =(

    aber trotzdem danke schonmal für die erste und so schnelle antwort =)

    Ich hoffe es folgen noch einige :D :D

  • &quot;dürfte funktionieren&quot;
    [autoit]

    #include <GUIConstants.au3>
    Opt("GUIOnEventMode", 1)

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

    Global $gui, $gui1, $gui2

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

    $gui1 = GUICreate("GUI 1", 200, 200)
    $label1 = GUICtrlCreateLabel("GUI 1", 100, 100)
    $button1 = GUICtrlCreateButton("ENDE", 40, 40)
    GUICtrlSetOnEvent($button1, "close")
    GUISetOnEvent($GUI_EVENT_Close, "close")
    GUISetState(@SW_HIDE)

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

    $gui2 = GUICreate("GUI 2", 200, 200)
    $label2 = GUICtrlCreateLabel("GUI 2", 100, 100)
    $button2 = GUICtrlCreateButton("ENDE", 40, 40)
    GUICtrlSetOnEvent($button2, "close")
    GUISetOnEvent($GUI_EVENT_Close, "close")
    GUISetState(@SW_HIDE)

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

    start()

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

    While 1
    Sleep(1000)
    WEnd

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

    Func start()
    $gui = InputBox("gui", "gui")
    If Not @error Then
    If $gui = "1" Then
    GUISetState(@SW_SHOW, $gui1)
    ElseIf $gui = "2" Then
    GUISetState(@SW_SHOW, $gui2)
    Else
    MsgBox(0, "", "")
    start()
    EndIf
    ElseIf @error = 1 Then
    Exit
    EndIf
    EndFunc ;==>start

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

    Func close()
    GUISetState(@SW_HIDE,$gui1)
    GUISetState(@SW_HIDE,$gui2)
    start()
    EndFunc ;==>close

    [/autoit]
  • Hallo @ideas2code,

    du musst die func close abändern:

    [autoit]

    Func close()
    GUISetState(@SW_HIDE,$gui1)
    GUISetState(@SW_HIDE,$gui2)
    start()
    EndFunc ;==>close

    [/autoit]

    da nach GuiDelete die jeweilige Gui gelöscht wird und nicht mehr angesprochen werden kann,

    mfg (Auto)Bert

  • Hey supi das ihr mir so verdammt schnell helfen konntet es funktioniert nun danke an alle =) ihr seit die Besten :thumbup: :thumbup: :thumbup:
    -CLOSED?-

    edit: hmm wer oder wo kann ich bzw er/sie das thema den als gelöst markieren?