MenuItem - Probleme mit SetOnEvent?

  • Hallo,

    ich hab folgendes Menü:

    [autoit]


    Opt("GUIOnEventMode", 1)
    [...]
    $mItemFile = GUICtrlCreateMenu("Datei")
    $mItemClose = GUICtrlCreateMenuItem("Beenden", $mItemFile)

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

    GUICtrlSetOnEvent($mItemClose, "_Exit")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

    [/autoit]

    Beim Klick aufs X klappt das Beenden auch, beim Klick auf das Menu-Item nicht, es passiert nichts.

    Woran liegts?

    Danke!

    mfg,
    Alfred

    Einmal editiert, zuletzt von alfred (25. Oktober 2008 um 18:29)

  • Bei mir funktioniert es
    Zeig mal mehr Code bitte :)

    Spoiler anzeigen
    [autoit]

    ;#NoTrayIcon

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

    Opt("MustDeclareVars",1)
    Opt("GUIOnEventMode",1)

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

    Const $GUICLOSE = -3

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

    Const $TITLE = "template"
    Const $WIDTH = 400
    Const $HEIGHT = 400

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

    main()
    Func main()
    Local $mItemFile,$mItemClose

    GUICreate($TITLE,$WIDTH,$HEIGHT)
    GUISetOnEvent($GUICLOSE,"_EXIT")

    $mItemFile = GUICtrlCreateMenu("Datei")
    $mItemClose = GUICtrlCreateMenuItem("Beenden", $mItemFile)

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

    GUICtrlSetOnEvent($mItemClose, "_EXIT")

    GUISetState(@SW_SHOWNORMAL)
    While 1
    Sleep(1000)
    WEnd
    EndFunc

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

    Func _EXIT()
    Exit
    EndFunc

    [/autoit]
  • Dein Bsp. funzt bei mir auch... hmm...

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <IE.au3>
    #include <Word.au3>

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

    buildGUI()

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

    Func buildGUI()
    ; Settings
    Opt("GUIOnEventMode", 1)

    ; Main GUI:
    $guiMain = GUICreate("SytemScheine", 634, 479, 256, 223)
    $guiLogo = GUICtrlCreatePic("res\ssp.gif", 1, 0, 631, 55)

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

    ; Login:
    $labelUser = GUICtrlCreateLabel("Benutzer:", 8, 63, 49, 17)
    $inputUser = GUICtrlCreateInput("...", 64, 60, 145, 21)
    $labelPwd = GUICtrlCreateLabel("Passwort:", 222, 63, 50, 17)
    $inputPwd = GUICtrlCreateInput("...", 278, 60, 145, 21, BitOR($ES_PASSWORD, $ES_AUTOHSCROLL))
    $buLogin = GUICtrlCreateButton("Login", 438, 58, 48, 25, 0)
    $iconLogin = GUICtrlCreateButton("1", 497, 58, 24, 24, $BS_ICON)
    GUICtrlSetImage(-1, "res\loggedout.ico")

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

    ; Tabs
    $tabs = GUICtrlCreateTab(0, 88, 633, 369)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)

    ; Tab: Neuer Systemschein
    $tsNew = GUICtrlCreateTabItem("Systemschein anlegen")
    $labelSN = GUICtrlCreateLabel("Seriennummer:", 16, 128, 74, 17)
    $inputSN = GUICtrlCreateInput("", 96, 126, 153, 21)
    $buCheckSN = GUICtrlCreateButton("Abfragen", 256, 125, 57, 25, 0)

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

    ; Tab: Vorhandene Sytemscheine
    $tsExisting = GUICtrlCreateTabItem("Vorhandene Systemscheine")

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

    ; Menu:
    $mItemFile = GUICtrlCreateMenu("Datei")
    $mItemClose = GUICtrlCreateMenuItem("Beenden", $mItemFile)
    $mItemDB = GUICtrlCreateMenu("Datenbank")
    $mItemBackup = GUICtrlCreateMenuItem("DB Backup", $mItemDB)
    $mItemOptions = GUICtrlCreateMenu("Optionen")
    $mItemInfos = GUICtrlCreateMenu("Info")
    GUISetState(@SW_SHOW)

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

    ; Events
    ;GUICtrlSetOnEvent($buLogin, "login")
    GUICtrlSetOnEvent($mItemClose, "_Exit")
    GUICtrlSetOnEvent($mItemBackup, "test")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

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

    While 1
    Sleep(100)
    WEnd

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

    EndFunc ;==>buildGUI

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

    Func test()
    MsgBox(0, "", "12345")
    EndFunc

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

    Func _Exit()
    MsgBox("", "", "lala")
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    Der test()-Aufruf funktioniert auch nicht 8|?(
    Lass ich die Tabs weg, funktionierts. Komisch - jemand ne Idee?

    Danke!

  • Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <IE.au3>
    #include <Word.au3>

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

    buildGUI()

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

    Func buildGUI()
    ; Settings
    Opt("GUIOnEventMode", 1)

    ; Main GUI:
    $guiMain = GUICreate("SytemScheine", 634, 479, 256, 223)
    $guiLogo = GUICtrlCreatePic("res\ssp.gif", 1, 0, 631, 55)

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

    ; Login:
    $labelUser = GUICtrlCreateLabel("Benutzer:", 8, 63, 49, 17)
    $inputUser = GUICtrlCreateInput("...", 64, 60, 145, 21)
    $labelPwd = GUICtrlCreateLabel("Passwort:", 222, 63, 50, 17)
    $inputPwd = GUICtrlCreateInput("...", 278, 60, 145, 21, BitOR($ES_PASSWORD, $ES_AUTOHSCROLL))
    $buLogin = GUICtrlCreateButton("Login", 438, 58, 48, 25, 0)
    $iconLogin = GUICtrlCreateButton("1", 497, 58, 24, 24, $BS_ICON)
    GUICtrlSetImage(-1, "res\loggedout.ico")

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

    ; Tabs
    $tabs = GUICtrlCreateTab(0, 88, 633, 369)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)

    ; Tab: Neuer Systemschein
    $tsNew = GUICtrlCreateTabItem("Systemschein anlegen")
    $labelSN = GUICtrlCreateLabel("Seriennummer:", 16, 128, 74, 17)
    $inputSN = GUICtrlCreateInput("", 96, 126, 153, 21)
    $buCheckSN = GUICtrlCreateButton("Abfragen", 256, 125, 57, 25, 0)

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

    ; Tab: Vorhandene Sytemscheine
    $tsExisting = GUICtrlCreateTabItem("Vorhandene Systemscheine")

    ; Abschluss des Tabs
    GUICtrlCreateTabItem("")

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

    ; Menu:
    $mItemFile = GUICtrlCreateMenu("Datei")
    $mItemClose = GUICtrlCreateMenuItem("Beenden", $mItemFile)
    $mItemDB = GUICtrlCreateMenu("Datenbank")
    $mItemBackup = GUICtrlCreateMenuItem("DB Backup", $mItemDB)
    $mItemOptions = GUICtrlCreateMenu("Optionen")
    $mItemInfos = GUICtrlCreateMenu("Info")
    GUISetState(@SW_SHOW)

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

    ; Events
    ;GUICtrlSetOnEvent($buLogin, "login")
    GUICtrlSetOnEvent($mItemClose, "_Exit")
    GUICtrlSetOnEvent($mItemBackup, "test")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

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

    While 1
    Sleep(100)
    WEnd

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

    EndFunc ;==>buildGUI

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

    Func test()
    MsgBox(0, "", "12345")
    EndFunc

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

    Func _Exit()
    MsgBox("", "", "lala")
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    Du musst ein abschliessendes leeres tabitem erstellen wenn du fertig bist mit einem tab ->
    GUICtrlCreateTabItem("")