Menüitem aus menü löschen , einfach aber schwer??

  • Hi Leute , so langsam habe ich wohl alle Fragen gestellt die man zu menüitems stellen kann aber einer geht noch :D:D
    Ich möchte "im Prinzip" nur ein aus einer ListView gewähltes Menüitem in einem Menü löschen ,ich habe euch dazu dieses script erstellt
    damit ihr mein Problem versteht :rolleyes:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include "ModernMenuRaw.au3"
    #include <FF.au3>
    #include <String.au3>
    #Include <GuiListView.au3>
    #include <Array.au3>
    #include <GuiMenu.au3>

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

    Opt('GUIOnEventMode', 1)

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

    Global $R10= IniReadSectionNames(@ScriptDir & "/test.ini")
    Global $Input1,$Input2,$add_channel,$dtform,$list,$senderinfo[99][2],$sender[99],$menu,$menu2

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

    $Form1 = GUICreate("Core @ coding", 337, 218, 348, 160)
    GUISetOnEvent(-3, '_Exit')
    $menu = GUICtrlCreateMenu("Menü")
    $menu2 = GUICtrlCreateMenu("Menü2")
    $deletetitel = _GUICtrlCreateODMenuItem("Sender/Song löschen",$menu2,"shell32.dll",-132)
    GUICtrlSetOnEvent(-1, 'deletetitel')
    $channelconfig = _GUICtrlCreateODMenuItem("Sender/Song hinzufügen",$Menu2,"shell32.dll",-217)
    GUICtrlSetOnEvent(-1, '_add')
    $exit = _GUICtrlCreateODMenuItem("Exit",$Menu2,"shell32.dll",-28)
    GUICtrlSetOnEvent(-1, '_Exit')
    for $i=1 to $R10[0]
    $Temp_Read=IniReadSection(@ScriptDir & "/test.ini",$R10[$i])
    $cut= _Stringbetween($Temp_Read[1][1],"http://","/")
    if IsArray($cut) Then
    if $cut[0]= "www.youtube.de" Or $cut[0]="www.youtube.com" Then
    $sender[$i]= _GUICtrlCreateODMenuItem($R10[$i],$menu,@ScriptDir & "/youtube.ico")
    GUICtrlSetOnEvent(-1, '_navigate')
    $senderinfo[$i][0]=$Temp_Read[1][1]
    $senderinfo[$i][1]=$R10[$i]
    Else
    $sender[$i]= _GUICtrlCreateODMenuItem($R10[$i],$menu,"shell32.dll",-139)
    GUICtrlSetOnEvent(-1, '_navigate')
    $senderinfo[$i][0]=$Temp_Read[1][1]
    $senderinfo[$i][1]=$R10[$i]
    EndIf
    EndIf
    Next

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

    $label = GUICtrlCreateLabel("TestLabel", 150, 100)
    GUISetState(@SW_SHOW)
    _FFStart("www.google.de", "default", 1, True)

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

    While Sleep(100)
    WEnd

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

    Func _Exit()
    _FFQuit()
    Exit
    EndFunc ;==>_Exit

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

    Func _navigate()
    $text = _GetMenuText(@GUI_CtrlId)
    ;~ $text=GUICtrlRead(@GUI_CtrlId,1)
    MsgBox(0, "", $text)
    $url = IniRead(@ScriptDir & "/test.ini", $text, "Url", "")
    _FFOpenURL($url)
    EndFunc ;==>_navigate

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

    Func _add()
    $add_channel = GUICreate("Sender/Song hinzufügen", 305, 190, 541, 178, -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE, $WS_EX_TOPMOST, $WS_EX_APPWINDOW))
    GUISetOnEvent(-3, '_addguidelete')
    $Input1 = GUICtrlCreateInput("", 24, 40, 249, 21)
    $Input2 = GUICtrlCreateInput("", 24, 104, 249, 21)
    $Label7 = GUICtrlCreateLabel("Sender/Song-Name:", 16, 16, 150, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $Label8 = GUICtrlCreateLabel("Sender/Song-Url:", 16, 80, 150, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $save = GUICtrlCreateButton("Speichern", 16, 136, 265, 41, 0)
    GUICtrlSetOnEvent(-1, '_save')
    GUISetState(@SW_SHOW)
    EndFunc ;==>_add

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

    Func _addguidelete()
    GUIDelete($add_channel)
    EndFunc

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

    Func _deleteguidelete()
    GUIDelete($dtform)
    EndFunc

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

    Func _save()
    IniWrite(@ScriptDir & "/test.ini", GUICtrlRead($Input1), "Url", GUICtrlRead($Input2))
    GUICtrlCreateMenuItem(GUICtrlRead($Input1), $menu)
    GUICtrlSetOnEvent(-1, '_navigate')
    GUIDelete($add_channel)
    EndFunc ;==>_save

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

    Func deletetitel()

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

    $dtform = GUICreate("Titel löschen??", 331, 352, 764, 78,-1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE, $WS_EX_APPWINDOW))
    GUISetOnEvent(-3, '_deleteguidelete')
    $list=GUICtrlCreateListView("Titel ", 0, 0, 329, 297)
    $Loeschen = GUICtrlCreateButton("Löschen", 24, 304, 281, 41, 0)
    GUICtrlSetOnEvent(-1, 'delete')
    GUISetState(@SW_SHOW)

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

    for $i=1 to $R10[0]
    GUICtrlCreateListViewItem($R10[$i],$list)
    Next
    EndFunc

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

    Func delete()
    $clicked = GUICtrlRead(GUICtrlRead($list))
    If not $clicked="" Then
    $cut2=StringTrimRight($clicked,1)
    _GUICtrlListView_DeleteItemsSelected ($list)
    IniDelete(@ScriptDir & "/test.ini", $cut2)
    ;Und jetzt soll das gelöschte item auch aus dem Menü gelöscht werden,aber wie?????
    Else
    MsgBox(0,"","Kein Titel ausgewählt.")
    EndIf
    EndFunc

    [/autoit]

    Das Gesamtpaket (Ini,icon,includes) findet ihr im Anhang
    Hoffe jemand kann mir helfen :S

    MfG Hellboy

  • so müste das gehen

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include "ModernMenuRaw.au3"
    #include <FF.au3>
    #include <String.au3>
    #Include <GuiListView.au3>
    #include <Array.au3>
    #include <GuiMenu.au3>

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

    Opt('GUIOnEventMode', 1)

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

    Global $R10= IniReadSectionNames(@ScriptDir & "/test.ini")
    Global $Input1,$Input2,$add_channel,$dtform,$list,$senderinfo[99][2],$sender[99],$menu,$menu2

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

    $Form1 = GUICreate("Core @ coding", 337, 218, 348, 160)
    GUISetOnEvent(-3, '_Exit')
    $menu = GUICtrlCreateMenu("Menü")
    $menu2 = GUICtrlCreateMenu("Menü2")
    $deletetitel = _GUICtrlCreateODMenuItem("Sender/Song löschen",$menu2,"shell32.dll",-132)
    GUICtrlSetOnEvent(-1, 'deletetitel')
    $channelconfig = _GUICtrlCreateODMenuItem("Sender/Song hinzufügen",$Menu2,"shell32.dll",-217)
    GUICtrlSetOnEvent(-1, '_add')
    $exit = _GUICtrlCreateODMenuItem("Exit",$Menu2,"shell32.dll",-28)
    GUICtrlSetOnEvent(-1, '_Exit')
    for $i=1 to $R10[0]
    $Temp_Read=IniReadSection(@ScriptDir & "/test.ini",$R10[$i])
    $cut= _Stringbetween($Temp_Read[1][1],"http://","/")
    if IsArray($cut) Then
    if $cut[0]= "www.youtube.de" Or $cut[0]="www.youtube.com" Then
    $sender[$i]= _GUICtrlCreateODMenuItem($R10[$i],$menu,@ScriptDir & "/youtube.ico")
    GUICtrlSetOnEvent(-1, '_navigate')
    $senderinfo[$i][0]=$Temp_Read[1][1]
    $senderinfo[$i][1]=$R10[$i]
    Else
    $sender[$i]= _GUICtrlCreateODMenuItem($R10[$i],$menu,"shell32.dll",-139)
    GUICtrlSetOnEvent(-1, '_navigate')
    $senderinfo[$i][0]=$Temp_Read[1][1]
    $senderinfo[$i][1]=$R10[$i]
    EndIf
    EndIf
    Next

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

    $label = GUICtrlCreateLabel("TestLabel", 150, 100)
    GUISetState(@SW_SHOW)
    _FFStart("www.google.de", "default", 1, True)

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

    While Sleep(100)
    WEnd

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

    Func _Exit()
    _FFQuit()
    Exit
    EndFunc ;==>_Exit

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

    Func _navigate()
    $text = _GetMenuText(@GUI_CtrlId)
    ;~ $text=GUICtrlRead(@GUI_CtrlId,1)
    MsgBox(0, "", $text)
    $url = IniRead(@ScriptDir & "/test.ini", $text, "Url", "")
    _FFOpenURL($url)
    EndFunc ;==>_navigate

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

    Func _add()
    $add_channel = GUICreate("Sender/Song hinzufügen", 305, 190, 541, 178, -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE, $WS_EX_TOPMOST, $WS_EX_APPWINDOW))
    GUISetOnEvent(-3, '_addguidelete')
    $Input1 = GUICtrlCreateInput("", 24, 40, 249, 21)
    $Input2 = GUICtrlCreateInput("", 24, 104, 249, 21)
    $Label7 = GUICtrlCreateLabel("Sender/Song-Name:", 16, 16, 150, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $Label8 = GUICtrlCreateLabel("Sender/Song-Url:", 16, 80, 150, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $save = GUICtrlCreateButton("Speichern", 16, 136, 265, 41, 0)
    GUICtrlSetOnEvent(-1, '_save')
    GUISetState(@SW_SHOW)
    EndFunc ;==>_add

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

    Func _addguidelete()
    GUIDelete($add_channel)
    EndFunc

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

    Func _deleteguidelete()
    GUIDelete($dtform)
    EndFunc

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

    Func _save()
    IniWrite(@ScriptDir & "/test.ini", GUICtrlRead($Input1), "Url", GUICtrlRead($Input2))
    GUICtrlCreateMenuItem(GUICtrlRead($Input1), $menu)
    GUICtrlSetOnEvent(-1, '_navigate')
    GUIDelete($add_channel)
    EndFunc ;==>_save

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

    Func deletetitel()

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

    $dtform = GUICreate("Titel löschen??", 331, 352, 764, 78,-1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE, $WS_EX_APPWINDOW))
    GUISetOnEvent(-3, '_deleteguidelete')
    $list=GUICtrlCreateListView("Titel ", 0, 0, 329, 297)
    $Loeschen = GUICtrlCreateButton("Löschen", 24, 304, 281, 41, 0)
    GUICtrlSetOnEvent(-1, 'delete')
    GUISetState(@SW_SHOW)

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

    for $i=1 to $R10[0]
    GUICtrlCreateListViewItem($R10[$i],$list)
    Next
    EndFunc

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

    Func delete()
    $clicked = GUICtrlRead(GUICtrlRead($list))
    If not $clicked="" Then
    $cut2=StringTrimRight($clicked,1)
    MsgBox(0,"", $cut2)
    _GUICtrlListView_DeleteItemsSelected ($list)
    IniDelete(@ScriptDir & "/test.ini", $cut2)
    _ArrayDisplay($senderinfo)
    For $n = 0 to Ubound($senderinfo) -1
    If $senderinfo[$n][1] = $cut2 Then
    _ArrayDisplay($senderinfo)
    _ArrayDelete($senderinfo, $n)
    _ArrayDelete($R10, $n)
    _ArrayDisplay($senderinfo)
    GUICtrlDelete($sender[$n])
    ExitLoop
    EndIf
    Next

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

    Else
    MsgBox(0,"","Kein Titel ausgewählt.")
    EndIf
    EndFunc

    [/autoit]