Brauche kleine Hilfe beim Denken

  • Guten Abend,

    ich habe gerade ein kleines Problem. Ich habe eine GUI mit einer Rück- und Vorwärtstaste. Doch leider funktioniert das ganze nicht, wenn man auf eine Seite (Radiosender) geht und dann auf die Taste <--, --> und dann wieder auf <-- klickt. Es bleibt irgendwie hängen und die Startseite wird nicht aufgerufen.

    Helft mir bitte ich schaff es irgendwie nicht :wacko:

    Problem ist erst ab Zeile 216 - 228.

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Run_Au3check=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.0.0
    Author: DeepRed (AutoIt.de)

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <Includes\MessageHandler.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <GuiToolBar.au3>
    #include <GuiImageList.au3>
    #include <GuiListView.au3>
    #include <Includes\ModernMenuRaw.au3>
    #include <ListViewConstants.au3>
    #include <GuiStatusBar.au3>
    #include <ProgressConstants.au3>

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

    Global Const $LV_START = 0x1
    Global Const $LV_CHANNELS = 0x2
    Global Const $LV_MUSIK = 0x3
    Global Const $LV_FAVORITES = 0x4

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

    Global $Width = 712
    Global $Hight = 440
    Global $aParts[4] = [200, 300, 620, -1]
    Global $CurrentPage = $LV_START
    Global $LastPage = $LV_START

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

    Global Enum $item1, $item2, $item3, $item4, $item5, $item6, $item7, $item8, $item9, $item10, $item11

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

    $MainGUI = GUICreate("Desktop Radio Music Manager (Beta)", $Width - 1, $Hight + 33, -1, -1, -1, $WS_EX_ACCEPTFILES)
    GUISetIcon(@ScriptDir & "\Img\Icons\Toolbar\Radio2.ico")

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

    ;-----------------------------------------------------------\
    $Menu_File = GUICtrlCreateMenu("Datei")
    $Menu_Item_Exit = _GUICtrlCreateODMenuItem("Beenden", $Menu_File, "shell32.dll", -132)
    $Menu_Edit = GUICtrlCreateMenu("Bearbeiten")

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

    $Menu_Extras = GUICtrlCreateMenu("Extras")

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

    $Menu_Info = GUICtrlCreateMenu("Info")
    $Menu_Item_About = _GUICtrlCreateODMenuItem("Über Music Manager", $Menu_Info, @ScriptDir & "\img\Icons\Radio2.ico", 0)
    $Menu_Item_Infos = _GUICtrlCreateODMenuItem("Versionshinweise", $Menu_Info, "shell32.dll", -91)
    ;-----------------------------------------------------------/
    ;-----------------------------------------------------------\
    $hToolbar = _GUICtrlToolbar_Create($MainGUI)

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

    $ImageListToolbar = _GUIImageList_Create(32, 32, 5, 3, 3)
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Previous.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Next.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\add.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Edit.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Delete.ico")

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

    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Stop.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Play.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Pause.ico")

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

    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Refresh.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Help.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Mail.ico")
    _GUICtrlToolbar_SetImageList($hToolbar, $ImageListToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item1, 0)
    _GUICtrlToolbar_AddButton($hToolbar, $item2, 1)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item3, 2)
    _GUICtrlToolbar_AddButton($hToolbar, $item4, 3)
    _GUICtrlToolbar_AddButton($hToolbar, $item5, 4)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item6, 5)
    _GUICtrlToolbar_AddButton($hToolbar, $item7, 6)
    _GUICtrlToolbar_AddButton($hToolbar, $item8, 7)

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

    _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar, $item9, 8)
    _GUICtrlToolbar_AddButton($hToolbar, $item10, 9)
    _GUICtrlToolbar_AddButton($hToolbar, $item11, 10)

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

    ;-----------------------------------------------------------/
    ;-----------------------------------------------------------\
    $Page_Start = GUICreate("", $Width, $Hight - 63 + 10, 0, 44, $WS_CHILD, -1, $MainGUI)

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

    $ListView_Start = GUICtrlCreateListView("Navigation", 0, 0, $Width, $Hight - 63 + 10)
    GUICtrlSetStyle($ListView_Start, $LVS_ICON, $LVS_EX_DOUBLEBUFFER)
    GUICtrlSetState($ListView_Start, $GUI_DROPACCEPTED)
    _GUICtrlListView_AddItem($ListView_Start, "Radiosender", 0)
    _GUICtrlListView_AddItem($ListView_Start, "Musik", 1)
    _GUICtrlListView_AddItem($ListView_Start, "Favouriten", 2)
    $ImageListListViewStart = _GUIImageList_Create(48, 48, 5, 1)
    _GUIImageList_AddIconSize($ImageListListViewStart, @ScriptDir & "\Images\Icons\Toolbar\Radio2.ico", 48)
    _GUIImageList_AddIconSize($ImageListListViewStart, @ScriptDir & "\Images\Icons\Toolbar\MP3.ico", 48)
    _GUIImageList_AddIconSize($ImageListListViewStart, @ScriptDir & "\Images\Icons\Toolbar\Favorites.ico", 48)
    _GUICtrlListView_SetImageList($ListView_Start, $ImageListListViewStart, 0)
    ;-----------------------------------------------------------/
    ;-----------------------------------------------------------\
    $Page_Channels = GUICreate("", $Width, $Hight - 63 + 10, 0, 44, $WS_CHILD, -1, $MainGUI)

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

    $ListView_Channels = GUICtrlCreateListView("Name des Senders:|Genre|Bewertung|Internetadresse:", 0, 0, $Width, $Hight - 63 + 10)
    _GUICtrlListView_SetColumnWidth($ListView_Channels, 0, 170)
    _GUICtrlListView_SetColumnWidth($ListView_Channels, 1, 100)
    _GUICtrlListView_SetColumnWidth($ListView_Channels, 2, 70)
    _GUICtrlListView_SetColumnWidth($ListView_Channels, 3, 350)
    _GUICtrlListView_RegisterSortCallBack($ListView_Channels)
    ;-----------------------------------------------------------/
    $Page_Musik = GUICreate("", $Width, $Hight - 63 + 10, 0, 44, $WS_CHILD, -1, $MainGUI)

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

    $ListView_Musik = GUICtrlCreateListView("Titel|Interpret|Länge|Bewertung|Bitrate|Größe", 0, 0, $Width, $Hight - 63 + 10)
    GUICtrlSetState($ListView_Musik, $GUI_DROPACCEPTED)
    _GUICtrlListView_RegisterSortCallBack($ListView_Musik)
    ;-----------------------------------------------------------\
    ;-----------------------------------------------------------/
    $Page_Favoriten = GUICreate("", $Width, $Hight - 63 + 10, 0, 44, $WS_CHILD, -1, $MainGUI)

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

    $ListView_Favoriten = GUICtrlCreateListView("Titel|Interpret|Länge|Bewertung|Bitrate|Größe", 0, 0, $Width, $Hight - 63 + 10)
    GUICtrlSetStyle($ListView_Favoriten, $LVS_ICON + $LVS_EDITLABELS, $LVS_EX_DOUBLEBUFFER)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 0, 312)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 1, 80)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 2, 50)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 3, 70)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 4, 50)
    $ImageListListViewFavoriten = _GUIImageList_Create(32, 32, 5, 3, 3)
    _GUIImageList_AddIconSize($ImageListListViewFavoriten, @ScriptDir & "\Images\Icons\Toolbar\Folder.ico", 48)
    _GUICtrlListView_SetImageList($ListView_Favoriten, $ImageListListViewFavoriten, 0)

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

    $ListView_Favoriten_Menu = GUICtrlCreateContextMenu($ListView_Favoriten)
    _GUICtrlCreateODMenuItem("Löschen", $ListView_Favoriten_Menu, @ScriptDir & "\Images\Icons\Toolbar\Delete.ico", 0)
    _GUICtrlCreateODMenuItem("Bearbeiten", $ListView_Favoriten_Menu, @ScriptDir & "\Images\Icons\Toolbar\Edit.ico", 0)
    $ListView_Favoriten_Menu_New = _GUICtrlCreateODMenu("Neu", $ListView_Favoriten_Menu, @ScriptDir & "\Images\Icons\Toolbar\New.ico", 0)
    $ListView_Favoriten_Menu_Item_Folder = _GUICtrlCreateODMenuItem("Ordner", _
    $ListView_Favoriten_Menu_New, @ScriptDir & "\Images\Icons\Toolbar\Folder.ico", 0)
    ;-----------------------------------------------------------\
    ;-----------------------------------------------------------/
    $StatusBar = _GUICtrlStatusBar_Create($MainGUI, $aParts)
    _GUICtrlStatusBar_SetParts($StatusBar, $aParts)
    _GUICtrlStatusBar_SetText($StatusBar, " Statusanzeige", 0)

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

    DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
    $StatusBar_Progress = GUICtrlCreateProgress(5, 501, 100, 17, $PBS_SMOOTH)
    DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 7)

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

    $StatusBar_Progress_Handle = GUICtrlGetHandle($StatusBar_Progress)
    _GUICtrlStatusBar_EmbedControl($StatusBar, 3, $StatusBar_Progress_Handle)
    ;-----------------------------------------------------------\

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

    GUISwitch($MainGUI)
    GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")

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

    GUISetState(@SW_SHOW, $MainGUI)
    GUISetState(@SW_SHOW, $Page_Start)

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

    ControlClick($MainGUI, "", "SysListView321")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _BackForward($_Var, $_HideShow)
    If $_HideShow = @SW_SHOW Then
    Local $i_HideShow = @SW_SHOW
    ElseIf $_HideShow = @SW_HIDE Then
    Local $i_HideShow = @SW_HIDE
    EndIf
    Switch $_Var
    Case $LV_START
    GUISetState($i_HideShow, $Page_Start)
    Case $LV_CHANNELS
    GUISetState($i_HideShow, $Page_Channels)
    Case $LV_MUSIK
    GUISetState($i_HideShow, $Page_Musik)
    Case $LV_FAVORITES
    GUISetState($i_HideShow, $Page_Favoriten)
    EndSwitch
    EndFunc ;==>_BackForward

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

    Func _WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
    Local $tNMHDR, $event, $hwndFrom, $code, $i_idNew, $dwFlags, $lResult, $idFrom, $i_idOld
    Local $tNMTOOLBAR, $tNMTBHOTITEM, $tInfo
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    $idFrom = DllStructGetData($tNMHDR, "IDFrom")
    $code = DllStructGetData($tNMHDR, "Code")
    Switch $hwndFrom
    Case $hToolbar
    Switch $code
    Case $NM_CLICK
    $tNMACTIVE = DllStructCreate($tagNMITEMACTIVATE, $lParam)
    $iItem = DllStructGetData($tNMACTIVE, "Index")
    If $iItem = -1 Then Return $GUI_RUNDEFMSG
    Switch _GUICtrlToolbar_CommandToIndex($hToolbar, $iItem)
    Case 0
    GUISetState(@SW_SHOW, $Page_Start)

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

    _BackForward($CurrentPage, @SW_HIDE)

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

    $LastPage = $CurrentPage
    $CurrentPage = $LV_START

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

    Case 1

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

    _BackForward($LastPage, @SW_SHOW)
    _BackForward($CurrentPage, @SW_HIDE)

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

    Case 3

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

    Case 4

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

    Case 5

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

    Case 7

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

    Case 8

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

    Case 9

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

    Case 10

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

    Case 11

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

    Case 12

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

    Case 13

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

    EndSwitch
    Case $TBN_HOTITEMCHANGE
    $tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $lParam)
    $i_idOld = DllStructGetData($tNMTBHOTITEM, "idOld")
    $i_idNew = DllStructGetData($tNMTBHOTITEM, "idNew")
    $iItem = $i_idNew
    $dwFlags = DllStructGetData($tNMTBHOTITEM, "dwFlags")
    EndSwitch
    Case GUICtrlGetHandle($ListView_Start)
    Select
    Case $code = $NM_DBLCLK

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

    $ListViewGetIndex = _GUICtrlListView_GetSelectionMark($ListView_Start)

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

    If $ListViewGetIndex <> -1 Then

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

    Switch $ListViewGetIndex
    Case 0

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

    GUISetState(@SW_SHOW, $Page_Channels)
    GUISetState(@SW_HIDE, $Page_Start)
    $CurrentPage = $LV_CHANNELS
    Case 1

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

    GUISetState(@SW_SHOW, $Page_Musik)
    GUISetState(@SW_HIDE, $Page_Start)
    $CurrentPage = $LV_MUSIK
    Case 2

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

    GUISetState(@SW_SHOW, $Page_Favoriten)
    GUISetState(@SW_HIDE, $Page_Start)
    $CurrentPage = $LV_FAVORITES
    EndSwitch

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

    EndIf

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

    EndSelect

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

    Case GUICtrlGetHandle($ListView_Channels)
    Select
    Case $code = $NM_DBLCLK

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

    EndSelect

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

    Case GUICtrlGetHandle($ListView_Musik)
    Select
    Case $code = $NM_DBLCLK

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

    EndSelect

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

    Case GUICtrlGetHandle($ListView_Favoriten)
    Select
    Case $code = $NM_DBLCLK

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

    EndSelect

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

    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>_WM_NOTIFY

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

    Func _GUIImageList_AddIconSize($hWnd, $sFile, $iSize = 32)
    Local $tIcon, $iResult, $hIcon
    $hIcon = _WinAPI_LoadImage(0, $sFile, $IMAGE_ICON, $iSize, $iSize, $LR_LOADFROMFILE)
    _WinAPI_Check("_GUIImageList_AddIcon", ($hIcon = 0), -1)
    $iResult = _GUIImageList_ReplaceIcon($hWnd, -1, $hIcon)
    _WinAPI_Check("_GUIImageList_AddIcon", ($iResult = -1), -2)
    _WinAPI_DestroyIcon($hIcon)
    Return $iResult
    EndFunc ;==>_GUIImageList_AddIconSize

    [/autoit]
  • Hi,
    meinst du so?

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Run_Au3check=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.0.0
    Author: DeepRed (AutoIt.de)

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <Includes\MessageHandler.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <GuiToolBar.au3>
    #include <GuiImageList.au3>
    #include <GuiListView.au3>
    #include <Includes\ModernMenuRaw.au3>
    #include <ListViewConstants.au3>
    #include <GuiStatusBar.au3>
    #include <ProgressConstants.au3>

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

    Global Const $LV_START = 0x1
    Global Const $LV_CHANNELS = 0x2
    Global Const $LV_MUSIK = 0x3
    Global Const $LV_FAVORITES = 0x4

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

    Global $Width = 712
    Global $Hight = 440
    Global $aParts[4] = [200, 300, 620, -1]
    Global $CurrentPage = $LV_START
    Global $LastPage = $LV_START

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

    Global Enum $item1, $item2, $item3, $item4, $item5, $item6, $item7, $item8, $item9, $item10, $item11

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

    $MainGUI = GUICreate("Desktop Radio Music Manager (Beta)", $Width - 1, $Hight + 33, -1, -1, -1, $WS_EX_ACCEPTFILES)
    GUISetIcon(@ScriptDir & "\Img\Icons\Toolbar\Radio2.ico")

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

    ;-----------------------------------------------------------\
    $Menu_File = GUICtrlCreateMenu("Datei")
    $Menu_Item_Exit = _GUICtrlCreateODMenuItem("Beenden", $Menu_File, "shell32.dll", -132)
    $Menu_Edit = GUICtrlCreateMenu("Bearbeiten")

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

    $Menu_Extras = GUICtrlCreateMenu("Extras")

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

    $Menu_Info = GUICtrlCreateMenu("Info")
    $Menu_Item_About = _GUICtrlCreateODMenuItem("Über Music Manager", $Menu_Info, @ScriptDir & "\img\Icons\Radio2.ico", 0)
    $Menu_Item_Infos = _GUICtrlCreateODMenuItem("Versionshinweise", $Menu_Info, "shell32.dll", -91)
    ;-----------------------------------------------------------/
    ;-----------------------------------------------------------\
    $hToolbar = _GUICtrlToolbar_Create($MainGUI)

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

    $ImageListToolbar = _GUIImageList_Create(32, 32, 5, 3, 3)
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Previous.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Next.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\add.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Edit.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Delete.ico")

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

    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Stop.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Play.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Pause.ico")

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

    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Refresh.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Help.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Mail.ico")
    _GUICtrlToolbar_SetImageList($hToolbar, $ImageListToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item1, 0)
    _GUICtrlToolbar_AddButton($hToolbar, $item2, 1)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item3, 2)
    _GUICtrlToolbar_AddButton($hToolbar, $item4, 3)
    _GUICtrlToolbar_AddButton($hToolbar, $item5, 4)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item6, 5)
    _GUICtrlToolbar_AddButton($hToolbar, $item7, 6)
    _GUICtrlToolbar_AddButton($hToolbar, $item8, 7)

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

    _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar, $item9, 8)
    _GUICtrlToolbar_AddButton($hToolbar, $item10, 9)
    _GUICtrlToolbar_AddButton($hToolbar, $item11, 10)

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

    ;-----------------------------------------------------------/
    ;-----------------------------------------------------------\
    $Page_Start = GUICreate("", $Width, $Hight - 63 + 10, 0, 44, $WS_CHILD, -1, $MainGUI)

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

    $ListView_Start = GUICtrlCreateListView("Navigation", 0, 0, $Width, $Hight - 63 + 10)
    GUICtrlSetStyle($ListView_Start, $LVS_ICON, $LVS_EX_DOUBLEBUFFER)
    GUICtrlSetState($ListView_Start, $GUI_DROPACCEPTED)
    _GUICtrlListView_AddItem($ListView_Start, "Radiosender", 0)
    _GUICtrlListView_AddItem($ListView_Start, "Musik", 1)
    _GUICtrlListView_AddItem($ListView_Start, "Favouriten", 2)
    $ImageListListViewStart = _GUIImageList_Create(48, 48, 5, 1)
    _GUIImageList_AddIconSize($ImageListListViewStart, @ScriptDir & "\Images\Icons\Toolbar\Radio2.ico", 48)
    _GUIImageList_AddIconSize($ImageListListViewStart, @ScriptDir & "\Images\Icons\Toolbar\MP3.ico", 48)
    _GUIImageList_AddIconSize($ImageListListViewStart, @ScriptDir & "\Images\Icons\Toolbar\Favorites.ico", 48)
    _GUICtrlListView_SetImageList($ListView_Start, $ImageListListViewStart, 0)
    ;-----------------------------------------------------------/
    ;-----------------------------------------------------------\
    $Page_Channels = GUICreate("", $Width, $Hight - 63 + 10, 0, 44, $WS_CHILD, -1, $MainGUI)

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

    $ListView_Channels = GUICtrlCreateListView("Name des Senders:|Genre|Bewertung|Internetadresse:", 0, 0, $Width, $Hight - 63 + 10)
    _GUICtrlListView_SetColumnWidth($ListView_Channels, 0, 170)
    _GUICtrlListView_SetColumnWidth($ListView_Channels, 1, 100)
    _GUICtrlListView_SetColumnWidth($ListView_Channels, 2, 70)
    _GUICtrlListView_SetColumnWidth($ListView_Channels, 3, 350)
    _GUICtrlListView_RegisterSortCallBack($ListView_Channels)
    ;-----------------------------------------------------------/
    $Page_Musik = GUICreate("", $Width, $Hight - 63 + 10, 0, 44, $WS_CHILD, -1, $MainGUI)

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

    $ListView_Musik = GUICtrlCreateListView("Titel|Interpret|Länge|Bewertung|Bitrate|Größe", 0, 0, $Width, $Hight - 63 + 10)
    GUICtrlSetState($ListView_Musik, $GUI_DROPACCEPTED)
    _GUICtrlListView_RegisterSortCallBack($ListView_Musik)
    ;-----------------------------------------------------------\
    ;-----------------------------------------------------------/
    $Page_Favoriten = GUICreate("", $Width, $Hight - 63 + 10, 0, 44, $WS_CHILD, -1, $MainGUI)

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

    $ListView_Favoriten = GUICtrlCreateListView("Titel|Interpret|Länge|Bewertung|Bitrate|Größe", 0, 0, $Width, $Hight - 63 + 10)
    GUICtrlSetStyle($ListView_Favoriten, $LVS_ICON + $LVS_EDITLABELS, $LVS_EX_DOUBLEBUFFER)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 0, 312)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 1, 80)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 2, 50)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 3, 70)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 4, 50)
    $ImageListListViewFavoriten = _GUIImageList_Create(32, 32, 5, 3, 3)
    _GUIImageList_AddIconSize($ImageListListViewFavoriten, @ScriptDir & "\Images\Icons\Toolbar\Folder.ico", 48)
    _GUICtrlListView_SetImageList($ListView_Favoriten, $ImageListListViewFavoriten, 0)

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

    $ListView_Favoriten_Menu = GUICtrlCreateContextMenu($ListView_Favoriten)
    _GUICtrlCreateODMenuItem("Löschen", $ListView_Favoriten_Menu, @ScriptDir & "\Images\Icons\Toolbar\Delete.ico", 0)
    _GUICtrlCreateODMenuItem("Bearbeiten", $ListView_Favoriten_Menu, @ScriptDir & "\Images\Icons\Toolbar\Edit.ico", 0)
    $ListView_Favoriten_Menu_New = _GUICtrlCreateODMenu("Neu", $ListView_Favoriten_Menu, @ScriptDir & "\Images\Icons\Toolbar\New.ico", 0)
    $ListView_Favoriten_Menu_Item_Folder = _GUICtrlCreateODMenuItem("Ordner", _
    $ListView_Favoriten_Menu_New, @ScriptDir & "\Images\Icons\Toolbar\Folder.ico", 0)
    ;-----------------------------------------------------------\
    ;-----------------------------------------------------------/
    $StatusBar = _GUICtrlStatusBar_Create($MainGUI, $aParts)
    _GUICtrlStatusBar_SetParts($StatusBar, $aParts)
    _GUICtrlStatusBar_SetText($StatusBar, " Statusanzeige", 0)

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

    DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
    $StatusBar_Progress = GUICtrlCreateProgress(5, 501, 100, 17, $PBS_SMOOTH)
    DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 7)

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

    $StatusBar_Progress_Handle = GUICtrlGetHandle($StatusBar_Progress)
    _GUICtrlStatusBar_EmbedControl($StatusBar, 3, $StatusBar_Progress_Handle)
    ;-----------------------------------------------------------\

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

    GUISwitch($MainGUI)
    GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")

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

    GUISetState(@SW_SHOW, $MainGUI)
    GUISetState(@SW_SHOW, $Page_Start)

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

    ControlClick($MainGUI, "", "SysListView321")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    ;~ Func _BackForward($_Var, $_HideShow)
    ;~ If $_HideShow = @SW_SHOW Then
    ;~ Local $i_HideShow = @SW_SHOW
    ;~ ElseIf $_HideShow = @SW_HIDE Then
    ;~ Local $i_HideShow = @SW_HIDE
    ;~ EndIf
    ;~ Switch $_Var
    ;~ Case $LV_START
    ;~ GUISetState($i_HideShow, $Page_Start)
    ;~ Case $LV_CHANNELS
    ;~ GUISetState($i_HideShow, $Page_Channels)
    ;~ Case $LV_MUSIK
    ;~ GUISetState($i_HideShow, $Page_Musik)
    ;~ Case $LV_FAVORITES
    ;~ GUISetState($i_HideShow, $Page_Favoriten)
    ;~ EndSwitch
    ;~ EndFunc ;==>_BackForward

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

    Func _WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
    Local $tNMHDR, $event, $hwndFrom, $code, $i_idNew, $dwFlags, $lResult, $idFrom, $i_idOld
    Local $tNMTOOLBAR, $tNMTBHOTITEM, $tInfo
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    $idFrom = DllStructGetData($tNMHDR, "IDFrom")
    $code = DllStructGetData($tNMHDR, "Code")
    Switch $hwndFrom
    Case $hToolbar
    Switch $code
    Case $NM_CLICK
    $tNMACTIVE = DllStructCreate($tagNMITEMACTIVATE, $lParam)
    $iItem = DllStructGetData($tNMACTIVE, "Index")
    If $iItem = -1 Then Return $GUI_RUNDEFMSG
    Switch _GUICtrlToolbar_CommandToIndex($hToolbar, $iItem)
    Case 0
    GUISetState(@SW_SHOW, $Page_Start)
    GUISetState(@SW_HIDE, $LastPage)
    $LastPage = $CurrentPage

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

    Case 1
    GUISetState(@SW_HIDE, $Page_Start)
    GUISetState(@SW_SHOW, $LastPage)

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

    Case 3

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

    Case 4

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

    Case 5

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

    Case 7

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

    Case 8

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

    Case 9

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

    Case 10

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

    Case 11

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

    Case 12

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

    Case 13

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

    EndSwitch
    Case $TBN_HOTITEMCHANGE
    $tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $lParam)
    $i_idOld = DllStructGetData($tNMTBHOTITEM, "idOld")
    $i_idNew = DllStructGetData($tNMTBHOTITEM, "idNew")
    $iItem = $i_idNew
    $dwFlags = DllStructGetData($tNMTBHOTITEM, "dwFlags")
    EndSwitch
    Case GUICtrlGetHandle($ListView_Start)
    Select
    Case $code = $NM_DBLCLK

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

    $ListViewGetIndex = _GUICtrlListView_GetSelectionMark($ListView_Start)

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

    If $ListViewGetIndex <> -1 Then

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

    Switch $ListViewGetIndex
    Case 0

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

    GUISetState(@SW_SHOW, $Page_Channels)
    GUISetState(@SW_HIDE, $Page_Start)
    $CurrentPage = $Page_Channels
    Case 1

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

    GUISetState(@SW_SHOW, $Page_Musik)
    GUISetState(@SW_HIDE, $Page_Start)
    $CurrentPage = $Page_Musik
    Case 2

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

    GUISetState(@SW_SHOW, $Page_Favoriten)
    GUISetState(@SW_HIDE, $Page_Start)
    $CurrentPage = $Page_Favoriten
    EndSwitch

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

    EndIf

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

    EndSelect

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

    Case GUICtrlGetHandle($ListView_Channels)
    Select
    Case $code = $NM_DBLCLK

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

    EndSelect

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

    Case GUICtrlGetHandle($ListView_Musik)
    Select
    Case $code = $NM_DBLCLK

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

    EndSelect

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

    Case GUICtrlGetHandle($ListView_Favoriten)
    Select
    Case $code = $NM_DBLCLK

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

    EndSelect

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

    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>_WM_NOTIFY

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

    Func _GUIImageList_AddIconSize($hWnd, $sFile, $iSize = 32)
    Local $tIcon, $iResult, $hIcon
    $hIcon = _WinAPI_LoadImage(0, $sFile, $IMAGE_ICON, $iSize, $iSize, $LR_LOADFROMFILE)
    _WinAPI_Check("_GUIImageList_AddIcon", ($hIcon = 0), -1)
    $iResult = _GUIImageList_ReplaceIcon($hWnd, -1, $hIcon)
    _WinAPI_Check("_GUIImageList_AddIcon", ($iResult = -1), -2)
    _WinAPI_DestroyIcon($hIcon)
    Return $iResult
    EndFunc ;==>_GUIImageList_AddIconSize

    [/autoit]

    Das hin- und herspringen klappt.
    Hoffe es hat sich sonst kein Fehler eingeschlichen.
    Musste auch erst probieren.

    • Offizieller Beitrag

    Ändere mal die Zeil 50 in :

    [autoit]

    Global Enum $item1 =10, $item2, $item3, $item4, $item5, $item6, $item7, $item8, $item9, $item10, $item11

    [/autoit]


    Damit läuft es.

  • Ach so. Das 3. Steuerelement hatte die Zahl 3 was womöglich den GUI_EVENT_CLOSE ausgelöst hat. Vielen Dank!

    Noch eine allerletzte kleine Frage:

    Wenn man das Programm startet, auf Musik klickt, paar Musikordner in die List View zieht ,anschließend auf ein ListViewItem klickt und in die selbe List View zieht tauchen die selben Dateien nochmal auf. Wie kann ich das abstellen?

    Ich denke mal, dass das Problem an Zeile 201 - 233 liegt. Ich hab schon versucht die Variable "$gaDropFiles" nach jedem Drop-Event zu ReDimmen und zu löschen, doch dann taucht ein Objekt-Error auf. :wacko:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_Run_Au3check=n
    #AutoIt3Wrapper_Run_Obfuscator=y
    #Obfuscator_Parameters=/striponly
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.0.0
    Author: DeepRed (AutoIt.de)

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <Includes\MessageHandler.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <GuiToolBar.au3>
    #include <GuiImageList.au3>
    #include <GuiListView.au3>
    #include <Includes\ModernMenuRaw.au3>
    #include <ListViewConstants.au3>
    #include <GuiStatusBar.au3>
    #include <ProgressConstants.au3>

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

    Global $Width = 712
    Global $Hight = 440
    Global $aParts[4] = [200, 300, 620, -1]
    Global $gaDropFiles[1]
    Global $WM_DROPFILES = 0x233

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

    Global Enum $item1 = 1000, $item2, $item3, $item4, $item5, $item6, $item7, $item8, $item9, $item10, $item11

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

    Switch @OSVersion ;Oscar (http://www.autoit.de)
    Case 'WIN_VISTA', 'WIN_7'
    Global $aID3Index[3] = [21, 13, 28] ; Title, Artists, Bitrate
    Case 'WIN_XP', 'WIN_2003'
    Global $aID3Index[3] = [10, 16, 22] ; Title, Artists, Bitrate
    Case 'WIN_2000'
    Global $aID3Index[3] = [11, 10, 30] ; Title, Artists, Bitrate
    Case Else
    Exit MsgBox(16, "Musik Manager", 'Ihr Betriebssystem wird von diesem Programm nicht unterstützt!')
    EndSwitch

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

    $MainGUI = GUICreate("Desktop Radio Music Manager (Beta)", $Width - 1, $Hight + 33, -1, -1, -1, $WS_EX_ACCEPTFILES)
    GUISetIcon(@ScriptDir & "\Img\Icons\Toolbar\Radio2.ico")

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

    ;-----------------------------------------------------------\
    $Menu_File = GUICtrlCreateMenu("Datei")
    $Menu_Item_Exit = _GUICtrlCreateODMenuItem("Beenden", $Menu_File, "shell32.dll", -132)
    $Menu_Edit = GUICtrlCreateMenu("Bearbeiten")

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

    $Menu_Extras = GUICtrlCreateMenu("Extras")

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

    $Menu_Info = GUICtrlCreateMenu("Info")
    $Menu_Item_About = _GUICtrlCreateODMenuItem("Über Music Manager", $Menu_Info, @ScriptDir & "\img\Icons\Radio2.ico", 0)
    $Menu_Item_Infos = _GUICtrlCreateODMenuItem("Versionshinweise", $Menu_Info, "shell32.dll", -91)
    ;-----------------------------------------------------------/
    ;-----------------------------------------------------------\
    $hToolbar = _GUICtrlToolbar_Create($MainGUI)

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

    $ImageListToolbar = _GUIImageList_Create(32, 32, 5, 3, 3)
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Previous.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Next.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\add.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Edit.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Delete.ico")

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

    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Stop.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Play.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Pause.ico")

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

    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Refresh.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Help.ico")
    _GUIImageList_AddIconSize($ImageListToolbar, @ScriptDir & "\Images\Icons\Toolbar\Mail.ico")
    _GUICtrlToolbar_SetImageList($hToolbar, $ImageListToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item1, 0)
    _GUICtrlToolbar_AddButton($hToolbar, $item2, 1)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item3, 2)
    _GUICtrlToolbar_AddButton($hToolbar, $item4, 3)
    _GUICtrlToolbar_AddButton($hToolbar, $item5, 4)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item6, 5)
    _GUICtrlToolbar_AddButton($hToolbar, $item7, 6)
    _GUICtrlToolbar_AddButton($hToolbar, $item8, 7)

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

    _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar, $item9, 8)
    _GUICtrlToolbar_AddButton($hToolbar, $item10, 9)
    _GUICtrlToolbar_AddButton($hToolbar, $item11, 10)

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

    ;-----------------------------------------------------------/
    ;-----------------------------------------------------------\
    $Page_Start = GUICreate("", $Width, $Hight - 63 + 10, 0, 44, $WS_CHILD, -1, $MainGUI)

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

    $ListView_Start = GUICtrlCreateListView("Navigation", 0, 0, $Width, $Hight - 63 + 10)
    GUICtrlSetStyle($ListView_Start, $LVS_ICON, $LVS_EX_DOUBLEBUFFER)
    GUICtrlSetState($ListView_Start, $GUI_DROPACCEPTED)
    _GUICtrlListView_AddItem($ListView_Start, "Radiosender", 0)
    _GUICtrlListView_AddItem($ListView_Start, "Musik", 1)
    _GUICtrlListView_AddItem($ListView_Start, "Favouriten", 2)
    $ImageListListViewStart = _GUIImageList_Create(48, 48, 5, 1)
    _GUIImageList_AddIconSize($ImageListListViewStart, @ScriptDir & "\Images\Icons\Toolbar\Radio2.ico", 48)
    _GUIImageList_AddIconSize($ImageListListViewStart, @ScriptDir & "\Images\Icons\Toolbar\MP3.ico", 48)
    _GUIImageList_AddIconSize($ImageListListViewStart, @ScriptDir & "\Images\Icons\Toolbar\Favorites.ico", 48)
    _GUICtrlListView_SetImageList($ListView_Start, $ImageListListViewStart, 0)
    ;-----------------------------------------------------------/
    ;-----------------------------------------------------------\
    $Page_Channels = GUICreate("", $Width, $Hight - 63 + 10, 0, 44, $WS_CHILD, -1, $MainGUI)

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

    $ListView_Channels = GUICtrlCreateListView("Name des Senders:|Genre|Bewertung|Internetadresse:", 0, 0, $Width, $Hight - 63 + 10)
    _GUICtrlListView_SetColumnWidth($ListView_Channels, 0, 170)
    _GUICtrlListView_SetColumnWidth($ListView_Channels, 1, 100)
    _GUICtrlListView_SetColumnWidth($ListView_Channels, 2, 70)
    _GUICtrlListView_SetColumnWidth($ListView_Channels, 3, 350)
    _GUICtrlListView_RegisterSortCallBack($ListView_Channels)
    ;-----------------------------------------------------------/
    $Page_Musik = GUICreate("", $Width, $Hight - 63 + 10, 0, 44, $WS_CHILD, -1, $MainGUI)

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

    $ListView_Musik = GUICtrlCreateListView("Titel|Interpret|Länge|Bewertung|Bitrate|Größe", 0, 0, $Width, $Hight - 63 + 10)
    GUICtrlSetState($ListView_Musik, $GUI_DROPACCEPTED)
    _GUICtrlListView_SetColumnWidth($ListView_Musik, 0, 300)
    _GUICtrlListView_SetColumnWidth($ListView_Musik, 1, 130)
    _GUICtrlListView_SetColumnWidth($ListView_Musik, 2, 60)
    _GUICtrlListView_SetColumnWidth($ListView_Musik, 3, 70)
    _GUICtrlListView_SetColumnWidth($ListView_Musik, 4, 65)
    _GUICtrlListView_SetColumnWidth($ListView_Musik, 5, 65)
    _GUICtrlListView_RegisterSortCallBack($ListView_Musik)
    ;-----------------------------------------------------------\
    ;-----------------------------------------------------------/
    $Page_Favoriten = GUICreate("", $Width, $Hight - 63 + 10, 0, 44, $WS_CHILD, -1, $MainGUI)

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

    $ListView_Favoriten = GUICtrlCreateListView("Titel|Interpret|Länge|Bewertung|Bitrate|Größe", 0, 0, $Width, $Hight - 63 + 10)
    GUICtrlSetStyle($ListView_Favoriten, $LVS_ICON + $LVS_EDITLABELS, $LVS_EX_DOUBLEBUFFER)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 0, 312)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 1, 80)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 2, 50)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 3, 70)
    _GUICtrlListView_SetColumnWidth($ListView_Favoriten, 4, 50)
    $ImageListListViewFavoriten = _GUIImageList_Create(32, 32, 5, 3, 3)
    _GUIImageList_AddIconSize($ImageListListViewFavoriten, @ScriptDir & "\Images\Icons\Toolbar\Folder.ico", 48)
    _GUICtrlListView_SetImageList($ListView_Favoriten, $ImageListListViewFavoriten, 0)

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

    $ListView_Favoriten_Menu = GUICtrlCreateContextMenu($ListView_Favoriten)
    _GUICtrlCreateODMenuItem("Löschen", $ListView_Favoriten_Menu, @ScriptDir & "\Images\Icons\Toolbar\Delete.ico", 0)
    _GUICtrlCreateODMenuItem("Bearbeiten", $ListView_Favoriten_Menu, @ScriptDir & "\Images\Icons\Toolbar\Edit.ico", 0)
    $ListView_Favoriten_Menu_New = _GUICtrlCreateODMenu("Neu", $ListView_Favoriten_Menu, @ScriptDir & "\Images\Icons\Toolbar\New.ico", 0)
    $ListView_Favoriten_Menu_Item_Folder = _GUICtrlCreateODMenuItem("Ordner", _
    $ListView_Favoriten_Menu_New, @ScriptDir & "\Images\Icons\Toolbar\Folder.ico", 0)
    ;-----------------------------------------------------------\
    ;-----------------------------------------------------------/
    $StatusBar = _GUICtrlStatusBar_Create($MainGUI, $aParts)
    _GUICtrlStatusBar_SetParts($StatusBar, $aParts)
    _GUICtrlStatusBar_SetText($StatusBar, " Statusanzeige", 0)

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

    DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
    $StatusBar_Progress = GUICtrlCreateProgress(5, 501, 100, 17, $PBS_SMOOTH)
    DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 7)

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

    $StatusBar_Progress_Handle = GUICtrlGetHandle($StatusBar_Progress)
    _GUICtrlStatusBar_EmbedControl($StatusBar, 3, $StatusBar_Progress_Handle)
    ;-----------------------------------------------------------\

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

    GUISwitch($MainGUI)
    GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")
    GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES_FUNC")

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

    GUISetState(@SW_SHOW, $MainGUI)
    GUISetState(@SW_SHOW, $Page_Start)

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

    ControlClick($MainGUI, "", "SysListView321")

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

    Global Const $LV_START = $Page_Start
    Global Const $LV_CHANNELS = $Page_Channels
    Global Const $LV_MUSIK = $Page_Musik
    Global Const $LV_FAVORITES = $Page_Favoriten
    Global $CurrentPage = $LV_START
    Global $LastPage = $LV_START

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $GUI_EVENT_DROPPED

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

    For $i = 0 To UBound($gaDropFiles) - 1
    _GUICtrlStatusBar_SetText($StatusBar, "Kopiere Dateien " & $i + 1 & " von " & UBound($gaDropFiles), 0)
    If _IsFolder($gaDropFiles[$i]) Then

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

    $Array = _GetAllAudioFiles($gaDropFiles[$i])

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

    For $x = 1 To $Array[0]
    $Arrays = _GetExtProperty($Array[$x], -1)

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

    GUICtrlCreateListViewItem($Arrays[0] _
    & "|" & $Arrays[9] _
    & "|" & $Arrays[21] _
    & "|*****|" & $Arrays[22] _
    & "|" & $Arrays[1], $ListView_Musik)

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

    GUICtrlSetData($StatusBar_Progress, $x * 100 / $Array[0])
    _GUICtrlListView_Scroll($ListView_Musik, "", 500)
    Next
    Else

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

    $Arrays = _GetExtProperty($gaDropFiles[$i], -1)

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

    GUICtrlCreateListViewItem($Arrays[0] _
    & "|" & $Arrays[9] _
    & "|" & $Arrays[21] _
    & "|*****|" & $Arrays[22] _
    & "|" & $Arrays[1], $ListView_Musik)

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

    EndIf
    _GUICtrlListView_Scroll($ListView_Musik, "", 500)
    Next

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

    Case $ListView_Favoriten_Menu_Item_Folder
    _GUICtrlListView_AddItem($ListView_Favoriten, "Neuer Ordner", 0)
    _GUICtrlListView_EditLabel($ListView_Favoriten, _GUICtrlListView_GetItemCount($ListView_Favoriten) - 1)

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

    EndSwitch
    WEnd

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

    Func _IsFolder($_Path)
    Local $_Handle
    $_Handle = FileOpen($_Path, 1)
    FileClose($_Handle)
    If $_Handle = -1 Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc ;==>_IsFolder

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

    Func _WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
    Local $tNMHDR, $event, $hwndFrom, $code, $i_idNew, $dwFlags, $lResult, $idFrom, $i_idOld
    Local $tNMTOOLBAR, $tNMTBHOTITEM, $tInfo
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    $idFrom = DllStructGetData($tNMHDR, "IDFrom")
    $code = DllStructGetData($tNMHDR, "Code")
    Switch $hwndFrom
    Case $hToolbar
    Switch $code
    Case $NM_CLICK
    $tNMACTIVE = DllStructCreate($tagNMITEMACTIVATE, $lParam)
    $iItem = DllStructGetData($tNMACTIVE, "Index")
    If $iItem = -1 Then Return $GUI_RUNDEFMSG
    Switch _GUICtrlToolbar_CommandToIndex($hToolbar, $iItem)
    Case 0
    $LastPage = $CurrentPage
    GUISetState(@SW_SHOW, $Page_Start)
    GUISetState(@SW_HIDE, $LastPage)

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

    Case 1
    GUISetState(@SW_HIDE, $Page_Start)
    GUISetState(@SW_SHOW, $LastPage)

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

    Case 3

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

    Case 4

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

    Case 5

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

    Case 7

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

    Case 8

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

    Case 9

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

    Case 10

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

    Case 11

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

    Case 12

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

    Case 13

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

    EndSwitch
    Case $TBN_HOTITEMCHANGE
    $tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $lParam)
    $i_idOld = DllStructGetData($tNMTBHOTITEM, "idOld")
    $i_idNew = DllStructGetData($tNMTBHOTITEM, "idNew")
    $iItem = $i_idNew
    $dwFlags = DllStructGetData($tNMTBHOTITEM, "dwFlags")
    EndSwitch
    Case GUICtrlGetHandle($ListView_Start)
    Select
    Case $code = $NM_DBLCLK

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

    $ListViewGetIndex = _GUICtrlListView_GetSelectionMark($ListView_Start)

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

    If $ListViewGetIndex <> -1 Then

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

    Switch $ListViewGetIndex
    Case 0

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

    GUISetState(@SW_SHOW, $Page_Channels)
    GUISetState(@SW_HIDE, $Page_Start)
    $CurrentPage = $Page_Channels
    Case 1

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

    GUISetState(@SW_SHOW, $Page_Musik)
    GUISetState(@SW_HIDE, $Page_Start)
    $CurrentPage = $Page_Musik
    Case 2

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

    GUISetState(@SW_SHOW, $Page_Favoriten)
    GUISetState(@SW_HIDE, $Page_Start)
    $CurrentPage = $Page_Favoriten

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

    EndSwitch

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

    EndIf

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

    EndSelect

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

    Case GUICtrlGetHandle($ListView_Channels)
    Select
    Case $code = $NM_DBLCLK

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

    EndSelect

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

    Case GUICtrlGetHandle($ListView_Musik)
    Select
    Case $code = $NM_DBLCLK

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

    EndSelect

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

    Case GUICtrlGetHandle($ListView_Favoriten)
    Select
    Case $code = $NM_DBLCLK

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

    EndSelect
    Switch $code
    Case $LVN_ENDLABELEDIT, $LVN_ENDLABELEDITW ; The end of label editing for an item
    $tInfo = DllStructCreate($tagNMLVDISPINFO, $lParam)
    Switch $code = $LVN_ENDLABELEDITW
    Case True
    Local $tBuffer = DllStructCreate("wchar Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text"))
    Case False
    Local $tBuffer = DllStructCreate("char Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text"))
    EndSwitch
    ; If Text is not empty, return True to set the item's label to the edited text, return false to reject it
    ; If Text is empty the return value is ignored
    Return StringLen(DllStructGetData($tBuffer, "Text")) > 0
    EndSwitch

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

    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>_WM_NOTIFY

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

    Func WM_DROPFILES_FUNC($hWnd, $MsgID, $wParam, $lParam)
    Local $nSize, $pFileName
    Local $nAmt = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", 0xFFFFFFFF, "ptr", 0, "int", 255)
    For $i = 0 To $nAmt[0] - 1
    $nSize = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", 0, "int", 0)
    $nSize = $nSize[0] + 1
    $pFileName = DllStructCreate("char[" & $nSize & "]")
    DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", DllStructGetPtr($pFileName), "int", $nSize)
    ReDim $gaDropFiles[$i + 1]
    $gaDropFiles[$i] = DllStructGetData($pFileName, 1)
    $pFileName = 0
    Next
    EndFunc ;==>WM_DROPFILES_FUNC

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

    Func _GetExtProperty($sPath, $iProp) ;Simucal ([email='Simucal@gmail.com'][/email])
    Local $iExist, $sFile, $sDir, $oShellApp, $oDir, $oFile, $aProperty, $sProperty
    $iExist = FileExists($sPath)
    If $iExist = 0 Then
    SetError(1)
    Return 0
    Else
    $sFile = StringTrimLeft($sPath, StringInStr($sPath, "\", 0, -1))
    $sDir = StringTrimRight($sPath, (StringLen($sPath) - StringInStr($sPath, "\", 0, -1)))
    $oShellApp = ObjCreate("shell.application")
    $oDir = $oShellApp.NameSpace($sDir)
    $oFile = $oDir.Parsename($sFile)
    If $iProp = -1 Then
    Local $aProperty[35]
    For $i = 0 To 34
    $aProperty[$i] = $oDir.GetDetailsOf($oFile, $i)
    Next
    Return $aProperty
    Else
    $sProperty = $oDir.GetDetailsOf($oFile, $iProp)
    If $sProperty = "" Then
    Return 0
    Else
    Return $sProperty
    EndIf
    EndIf
    EndIf
    EndFunc ;==>_GetExtProperty

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

    Func _GUIImageList_AddIconSize($hWnd, $sFile, $iSize = 32) ;Progandy
    Local $tIcon, $iResult, $hIcon
    $hIcon = _WinAPI_LoadImage(0, $sFile, $IMAGE_ICON, $iSize, $iSize, $LR_LOADFROMFILE)
    _WinAPI_Check("_GUIImageList_AddIcon", ($hIcon = 0), -1)
    $iResult = _GUIImageList_ReplaceIcon($hWnd, -1, $hIcon)
    _WinAPI_Check("_GUIImageList_AddIcon", ($iResult = -1), -2)
    _WinAPI_DestroyIcon($hIcon)
    Return $iResult
    EndFunc ;==>_GUIImageList_AddIconSize

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

    Func _GetAllAudioFiles($i_Path)
    Local $i_Array[1], $Counter = 1
    $i_FileSearch = FileSearch($i_Path)
    $i_Split = StringSplit($i_FileSearch, @CRLF)
    For $i = 1 To $i_Split[0]
    If $i_Split[$i] <> "" Then
    Switch _FileGetType($i_Split[$i])
    Case "mp3", "wmv", "wma"
    ReDim $i_Array[1 + $Counter]
    $i_Array[$Counter] = $i_Split[$i]
    $Counter += 1
    EndSwitch
    EndIf
    Next
    $i_Array[0] = UBound($i_Array) - 1
    Return $i_Array
    EndFunc ;==>_GetAllAudioFiles

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

    Func _FileGetType($Path)
    Local $Split1 = StringSplit($Path, "\")
    Local $Split2 = StringSplit($Split1[$Split1[0]], ".")
    Return $Split2[$Split2[0]]
    EndFunc ;==>_FileGetType

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

    Func FileSearch($i_SearchDir, $i_Type = '*.*', $i_Sep = @CRLF, $i_LastLine = False)
    Local $i_a = '', $i_File, $i_FullFile, $i_CheckFile
    $i_SearchDir = StringReplace($i_SearchDir & '\', '\\', '\')
    Local $i_Search = FileFindFirstFile($i_SearchDir & '*.*')
    While 1
    $i_File = FileFindNextFile($i_Search)
    If $i_File = '' Then ExitLoop
    $i_FullFile = $i_SearchDir & $i_File
    $i_CheckFile = StringInStr(FileGetAttrib($i_FullFile), 'D')
    If $i_CheckFile <> 0 Then $i_a &= FileSearch($i_FullFile, $i_Type, $i_Sep, True)
    If $i_CheckFile = 0 Then
    If $i_Type = '*.*' Then $i_a &= $i_FullFile & $i_Sep
    If $i_Type <> '*.*' And StringTrimLeft($i_Type, 1) = StringRight($i_FullFile, StringLen(StringTrimLeft($i_Type, 1))) Then $i_a &= $i_FullFile & $i_Sep
    EndIf
    WEnd
    FileClose($i_Search)
    If Not $i_LastLine Then $i_a = StringTrimRight($i_a, StringLen($i_Sep))
    Return $i_a
    EndFunc ;==>FileSearch

    [/autoit]
  • Du kannst da beim Dropevent auslesen was schon im Listview steht und mit den hinzuzufügenden vergleichen.
    Für die Schnittmengenermittlung gibts auch eine UDF von Bugfix (im Skripteforum).

    Das Design ist übrigens ziemlich cool :thumbup:

  • Zitat von nuts

    Du kannst da beim Dropevent auslesen was schon im Listview steht und mit den hinzuzufügenden vergleichen.

    Würde das nicht etwas zu lange dauern? ?(

    Zitat von nuts

    Für die Schnittmengenermittlung gibts auch eine UDF von Bugfix (im Skripteforum).

    Ok werde ich mir mal anschauen. ;)

    Zitat von nuts

    Das Design ist übrigens ziemlich cool


    Danke danke :D


    Liegt das jetzt eigentlich an den ChildGUIs? Weil vorher hatte ich dieses Problem noch nicht. :huh: