Dateien in eine ListView ziehen

  • Hallo,

    wenn man eine selbsterstellte ListView anklickt und mit gedrückter Maustaste einen Item sozusagen rausziehen kann sieht es ja so aus:
    [Blockierte Grafik: http://download.lima-city.de/deepred/Bilder/833628382113500474.jpg] . Wie kann ich aber damit den Itemnamen herausbekommen? Bzw. wie kann man z.b eine Datei in eine ListView reinzeihen und den Pfad herausbekommen?

  • hi ich hab das mal so gemacht. Von dem input Feld habs ich dann in ein Listview schreiben lassen:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Form2 = GUICreate("Form2", 413, 305, 303, 219, -1, BitOR($WS_EX_ACCEPTFILES,$WS_EX_WINDOWEDGE))
    $Input1 = GUICtrlCreateInput("Input1", 136, 96, 209, 21)
    GUISetState(@SW_SHOW)
    GUICtrlSetState($Input1, $GUI_DROPACCEPTED)

    [/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][/autoit][autoit][/autoit]

    Ich hoffe das hilft Dir etwas weiter. Oder das meinst Du doch oder ?

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Genau das meine ich. Danke :thumbup:

    Edit:

    Und wie bekomme ich sowas mit einem ListView hin?:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>

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

    $Form1 = GUICreate("Form1", 266, 162, 192, 124, -1, BitOR($WS_EX_ACCEPTFILES, $WS_EX_WINDOWEDGE))
    $ListView1 = GUICtrlCreateListView("Datei", 8, 8, 250, 150)
    GUICtrlCreateListViewItem("TestEintrag",$ListView1)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    GUISetState(@SW_SHOW)

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

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

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

    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag

    Beispiel im OnEventMode:

    Spoiler anzeigen
    [autoit]


    #include <ListViewConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Opt('GUIOnEventMode', 1)

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

    $hGui = GUICreate('test', 640, 480, -1, -1, Default, $WS_EX_ACCEPTFILES) ; <- $WS_EX_ACCEPTFILES
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    GUISetOnEvent($GUI_EVENT_DROPPED, '_DragEvent') ; <- Funktion, die aufgerufen wird

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

    $hListview = GUICtrlCreateListView('Filename', 10, 10, 620, 400)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED) ; <- Status für das GUI-Element setzen
    GUICtrlSendMsg($hListview, $LVM_SETCOLUMNWIDTH, 0, 600)

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

    $hStatus1 = GUICtrlCreateLabel(' 0 Files', -2, 462, 124, 18, Default, $WS_EX_CLIENTEDGE)
    $hStatus2 = GUICtrlCreateLabel('', 120, 462, 544, 18, Default, $WS_EX_CLIENTEDGE)
    Global $iFiles = 0
    GUISetState()
    WinSetOnTop($hGui, '', 1)

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

    While True
    Sleep(10)
    WEnd

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

    Func _End()
    Exit
    EndFunc

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

    Func _ListviewEvent()
    Local $iSelect = ControlListView($hGui, '', $hListview, 'GetSelected', 0)
    GUICtrlSetData($hStatus2, ' ' & ControlListView($hGui, '', $hListview, 'GetText', $iSelect, 0))
    EndFunc

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

    Func _DragEvent()
    GUICtrlCreateListViewItem(@GUI_DRAGFILE, $hListview)
    GUICtrlSetOnEvent(-1, '_ListviewEvent')
    $iFiles += 1
    GUICtrlSetData($hStatus1, StringFormat(' %3i File(s)', $iFiles))
    EndFunc

    [/autoit]