MenüItems löschen

  • Hallo ich habe mal wieder mein Problem in stark vereinfachter Form für euch ;(

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $Gui=GUICreate("MenuItems löschen?",300,200,150,150)
    GUISetOnEvent(-3, '_Exit')
    $button=GUICtrlCreateButton("Items löschen",110,70,80,40)
    GUICtrlSetOnEvent(-1, "_itemsloeschen")
    $Menu1=GUICtrlCreateMenu("Menü1")
    GUICtrlCreateMenuItem("Item1",$Menu1)
    GUICtrlCreateMenuItem("Item2",$Menu1)
    GUICtrlCreateMenuItem("Item3",$Menu1)
    GUICtrlCreateMenuItem("Item4",$Menu1)
    GUICtrlCreateMenuItem("Item5",$Menu1)
    $Menu2=GUICtrlCreateMenu("Menü2")
    GUICtrlCreateMenuItem("Item6",$Menu2)
    GUICtrlCreateMenuItem("Item7",$Menu2)
    GUICtrlCreateMenuItem("Item8",$Menu2)
    GUISetState(@SW_SHOW)

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

    While Sleep(100)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

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

    Func _itemsloeschen()
    EndFunc

    [/autoit]

    Ich möchte alle Menüitems von Menü1 löschen wie geht das ? das scheint so banal aber ich bekomms net hin ?

    MfG Hellboy

    MfG hellboy

    [autoit]

    Do
    _help($user)
    Until $questions = 0

    [/autoit]

    Meine Werke:
    Ste`s Web-Radio

  • ich hab zwar ne lösung aber die ist eher blöd.
    an deiner stelle würde ich mir immer die id's der erstellten controls speichern.
    bei soetwas bieten sich array's an.
    also alle unterpunkte von menü eins in einem array speichern. dann sind sie schnell effektiv und sicher mit einer einfachen for schleife gelöscht

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $Gui=GUICreate("MenuItems löschen?",300,200,150,150)
    GUISetOnEvent(-3, '_Exit')
    $button=GUICtrlCreateButton("Items löschen",110,70,80,40)
    GUICtrlSetOnEvent(-1, "_itemsloeschen")
    $Menu1=GUICtrlCreateMenu("Menü1")
    GUICtrlCreateMenuItem("Item1",$Menu1)
    GUICtrlCreateMenuItem("Item2",$Menu1)
    GUICtrlCreateMenuItem("Item3",$Menu1)
    GUICtrlCreateMenuItem("Item4",$Menu1)
    GUICtrlCreateMenuItem("Item5",$Menu1)
    $Menu2=GUICtrlCreateMenu("Menü2")
    GUICtrlCreateMenuItem("Item6",$Menu2)
    GUICtrlCreateMenuItem("Item7",$Menu2)
    GUICtrlCreateMenuItem("Item8",$Menu2)
    GUISetState(@SW_SHOW)

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

    While Sleep(100)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

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

    Func _itemsloeschen()
    For $i = $Menu1 + 1 To $Menu2 - 1 ; sehr blöde lösung
    GUICtrlDelete($i)
    Next
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    So, in etwa würde es mit einem Array aussehen:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)
    Dim $aMenu[5]
    $Gui = GUICreate("MenuItems löschen?", 300, 200, 150, 150)
    GUISetOnEvent(-3, '_Exit')
    $button = GUICtrlCreateButton("Items löschen", 110, 70, 80, 40)
    GUICtrlSetOnEvent(-1, "_itemsloeschen")
    $Menu1 = GUICtrlCreateMenu("Menü1")
    $aMenu[0] = GUICtrlCreateMenuItem("Item1", $Menu1)
    $aMenu[1] = GUICtrlCreateMenuItem("Item2", $Menu1)
    $aMenu[2] = GUICtrlCreateMenuItem("Item3", $Menu1)
    $aMenu[3] = GUICtrlCreateMenuItem("Item4", $Menu1)
    $aMenu[4] = GUICtrlCreateMenuItem("Item5", $Menu1)
    $Menu2 = GUICtrlCreateMenu("Menü2")
    GUICtrlCreateMenuItem("Item6", $Menu2)
    GUICtrlCreateMenuItem("Item7", $Menu2)
    GUICtrlCreateMenuItem("Item8", $Menu2)
    GUISetState(@SW_SHOW)

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

    While Sleep(100)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

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

    Func _itemsloeschen()
    For $i = 0 To UBound($aMenu) - 1
    GUICtrlDelete($aMenu[$i])
    Next
    EndFunc ;==>_itemsloeschen

    [/autoit]
  • und so hätte ich es gemacht ^^

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $Gui=GUICreate("MenuItems löschen?",300,200,150,150)
    GUISetOnEvent(-3, '_Exit')
    $Menu1=GUICtrlCreateMenu("Menü1")
    GUICtrlCreateMenuItem("Item1",$Menu1)
    GUICtrlSetOnEvent(-1, "_itemsloeschen")
    GUICtrlCreateMenuItem("Item2",$Menu1)
    GUICtrlSetOnEvent(-1, "_itemsloeschen")
    GUICtrlCreateMenuItem("Item3",$Menu1)
    GUICtrlSetOnEvent(-1, "_itemsloeschen")
    GUICtrlCreateMenuItem("Item4",$Menu1)
    GUICtrlSetOnEvent(-1, "_itemsloeschen")
    GUICtrlCreateMenuItem("Item5",$Menu1)
    GUICtrlSetOnEvent(-1, "_itemsloeschen")
    $Menu2=GUICtrlCreateMenu("Menü2")
    GUICtrlCreateMenuItem("Item6",$Menu2)
    GUICtrlSetOnEvent(-1, "_itemsloeschen")
    GUICtrlCreateMenuItem("Item7",$Menu2)
    GUICtrlSetOnEvent(-1, "_itemsloeschen")
    GUICtrlCreateMenuItem("Item8",$Menu2)
    GUICtrlSetOnEvent(-1, "_itemsloeschen")
    GUISetState(@SW_SHOW)

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

    While Sleep(100)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

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

    Func _itemsloeschen()
    GUICtrlDelete(@GUI_CtrlId)
    EndFunc

    [/autoit]

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.