Func aus Func herraus aufrufen

  • Hey Leute ich habe folgendes Problemchen :)

    Also ich rufe durch eine Funktion ein Gui auf (aus meinem bestehenden Gui)
    In diesem 2. GUI (ich nenn es mal Popup) soll eine Funktion aufgerufen werden bei Knopfdruck.

    Nun kann ich aber aus dem Popup herraus keine Funktionen aufrufen.
    Wenn ich die gleiche Funktion aufrufen lasse im 1.Gui funktioniert sie ohne Probleme....

    Hoffe konnte es einiger maßen gut erklären ;)
    würde mich über Hilfe freuen..
    Nachti,.:)

    :sleeping: :sleeping: :thumbup:

  • negativ verwende kein GUIGetMsg

    habe alle OnEvent.

    gibt es da ne möglichkeit das zu unterscheiden?

    *Noch ne kleine frage hinten dran gleich ;)
    ich lass zwei jpgs mit einfliessen aber er schmeist sie nich mit ins programm rein beim compilieren sondern verlinkt sie nur.
    sobald die bilder aus dem ordner entfernt werden zeigt er mir die auch nicht mehr an im programm....

  • a)Bsp für OnEvent-Mode

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Opt("GUIOnEventMode",1)
    #region - GUI Create
    $gui1 = GUICreate('GUI1',300,70,-1,@DesktopHeight/2-70)
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
    GUICtrlCreateButton("Click!",10,20)
    GUICtrlSetOnEvent(-1,"_ButtonClick")
    GUISetState()

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

    $gui2 = GUICreate('>GUI 2< !!!',300,70,-1,@DesktopHeight/2+70)
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
    GUICtrlCreateButton("Click GUI2!",10,20)
    GUICtrlSetOnEvent(-1,"_ButtonClick")
    GUISetState()

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

    #endregion

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

    While 1
    Sleep(100)
    WEnd

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

    Func _ButtonClick()
    MsgBox(0, "MsgBox: "& WinGetTitle(@GUI_WinHandle),"Win-Handle: " & @GUI_WinHandle&@CRLF& "Control-ID: "&@GUI_CtrlId&@CRLF&"Control-Hanlde: "&@GUI_CtrlHandle)
    EndFunc

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

    Func _Exit()
    Switch @GUI_WinHandle
    Case $gui1
    GUIDelete($gui1)
    MsgBox(0, '', "Exit GUI1")
    If Not WinExists($gui2) Then Exit
    Case $gui2
    GUIDelete($gui2)
    MsgBox(0, '', "Exit GUI2")
    If Not WinExists($gui1) Then Exit
    EndSwitch
    EndFunc

    [/autoit]


    b) Mach noch ein FileInstall für jedes Bild :)

  • :( leider hilft mir das nicht bei meinem Problem.
    Ich lass ein GUI durch eine Func aufrufen.
    Nun soll in diesem GUI (in dieser Func) eine weitere Func aufgerufen werden können aber das klappt leider nicht so wie ich will :(

  • ähhm, so?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Opt("GUIOnEventMode",1)
    #region - GUI Create
    $gui1 = GUICreate('GUI1',300,70,-1,@DesktopHeight/2-70)
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
    $openButton = GUICtrlCreateButton("Click!",10,20)
    GUICtrlSetOnEvent(-1,"_ButtonClick")
    GUISetState()

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

    $gui2 = GUICreate('>GUI 2< !!!',300,70,-1,@DesktopHeight/2+70)
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
    GUICtrlCreateButton("Click GUI2!",10,20)
    GUICtrlSetOnEvent(-1,"_ButtonClick")
    GUISetState(@SW_HIDE)

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

    #endregion

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

    While 1
    Sleep(100)
    WEnd

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

    Func _ButtonClick()
    MsgBox(0, "MsgBox: "& WinGetTitle(@GUI_WinHandle),"Win-Handle: " & @GUI_WinHandle&@CRLF& "Control-ID: "&@GUI_CtrlId&@CRLF&"Control-Hanlde: "&@GUI_CtrlHandle)
    If @GUI_WinHandle = $gui1 And @GUI_CtrlId = $openButton Then GUISetState(@SW_SHOW,$gui2)
    EndFunc

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

    Func _Exit()
    Switch @GUI_WinHandle
    Case $gui1
    GUIDelete($gui1)
    MsgBox(0, '', "Exit GUI1")
    If Not WinExists($gui2) Then Exit
    Case $gui2
    GUIDelete($gui2)
    MsgBox(0, '', "Exit GUI2")
    If Not WinExists($gui1) Then Exit
    EndSwitch
    EndFunc

    [/autoit]