Array und ListBox mit mehrfach Auswahl

  • Hi,

    habe mal wieder ein Problem und komme nicht weiter.
    Ich lasse mit _FileReadToArray eine TXT Datei auslesen. In dieser stehen untereinander Werte. Diese Werte sollen nun in eine Listbox gebracht werden. Soweit so gut, habe ich geschafft.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <file.au3>
    #include <Array.au3>
    #Include <GuiList.au3>

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

    GUICreate("My GUI list") ; will create a dialog box that when displayed is centered

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

    $add=GUICtrlCreateButton ("Add", 64,32,75,25)
    $clear=GUICtrlCreateButton ("Clear", 64,72,75,25)
    $mylist=GUICtrlCreateList ("", 176,32,200,97)
    dim $list
    $filePath = "DGRP.TXT"
    _FileReadToArray($filePath, $list)
    For $i = 1 To $list[0]
    _GUICtrlListAddItem($mylist,$list[$i])
    Next

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

    ;~ GUICtrlSetLimit(-1,200) ; to limit horizontal scrolling

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

    $close=GUICtrlCreateButton ("my closing button", 64,160,175,25)

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

    GUISetState ()

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

    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
    $msg = GUIGetMsg()

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

    Select
    case $msg = $add
    GUICtrlSetData($mylist,"You clicked button No1|")
    case $msg = $clear
    GUICtrlSetData($mylist,"")
    Case $msg = $close
    MsgBox(0,"", "the closing button has been clicked",2)
    Exit
    EndSelect
    Wend

    [/autoit]

    Nun soll allerdings die möglichkeit bestehen, eine mehrfach Auswahl (mit STRG) zu tätigen. Dann will ich die Ausgewählten Werte in eine zweite Listbox schreiben lassen (quasi wie bei Hinzufügen/Entfernen Fenster siehe Anhang) damit ich mit diesen weiter arbeiten kann.
    Ich verzweifle mal wieder :(

    Vielen Dank für eure Hilfe
    Gruß
    Marc

  • Aus der Hilfe:

    Spoiler anzeigen

    Function Reference
    _GUICtrlListGetSelItems
    --------------------------------------------------------------------------------

    Get item indices of selected items


    #Include <GuiList.au3>
    _GUICtrlListGetSelItems ( $h_listbox )


    Parameters

    $h_listbox control id/control hWnd


    Return Value

    Array of selected items indices, first element ($array[0]) contains the number indices returned
    If the list box is a single-selection list box, the return value is $LB_ERR.
    If no items are selected, the return value is $LB_ERR.


    Remarks

    None.


    Related

    _GUICtrlListSelectedIndex, _GUICtrlListGetSelState, _GUICtrlListGetSelCount, _GUICtrlListGetSelItemsText, _GUICtrlListGetSelItems, _GUICtrlListSelItemRange, _GUICtrlListSelItemRangeEx

    Example

    [autoit]


    #include <GUIConstants.au3>
    #include <GuiList.au3>

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

    Opt ('MustDeclareVars', 1)

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

    Dim $msg, $ret, $listbox, $button, $i

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

    GUICreate("ListBox Selected Items Indices Demo", 400, 250, -1, -1)
    $listbox = GUICtrlCreateList("", 125, 40, 180, 120, BitOR($LBS_SORT, $WS_BORDER, $WS_VSCROLL, $LBS_NOTIFY, $LBS_MULTIPLESEL))
    GUICtrlSetData($listbox, "test1|more testing|even more testing|demo|")
    $button = GUICtrlCreateButton("Get Selected", 150, 160, 120, 40)
    GUISetState()
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $button
    $ret = _GUICtrlListGetSelItems ($listbox)
    If (Not IsArray($ret)) Then
    MsgBox(16, "Error", "Unknown error from _GUICtrlListGetSelItems")
    Else
    For $i = 1 To $ret[0]
    MsgBox(0, "Selected", $ret[$i])
    Next
    EndIf
    EndSelect
    WEnd

    [/autoit]