Komplette GUIListView auslesen

  • Hallo,

    ich habe eine GUIListView... kann ich die iwie komplett auslesen und in ein Array packen? Mit

    [autoit]

    _GUICtrlListView_SetItemSelected($GUIList,-1)

    [/autoit]

    kann ich alles markieren, aber sonst geht es iwie nicht. Die Liste hat übrigens nur eine Spalte.
    Das Problem ist ja gerade, dass Einträge zwischendurch gelöscht werden können, also die ID nicht fortlaufend sind

    Gruss

    4 Mal editiert, zuletzt von mille86 (27. Februar 2011 um 10:43)

    • Offizieller Beitrag

    Das geht so:

    Beispiel
    [autoit]

    #include<GUIListview.au3>
    #include<Array.au3>
    $gui = GUICreate('')
    $Listview = GUICtrlCreateListView('A|B', 10, 10, 300, 200)
    $hListview = GUICtrlGetHandle($Listview)
    For $i = 0 To 20
    GUICtrlCreateListViewItem(Random(1000, 9999, 1) & '|' & Random(1000, 9999, 1), $Listview)
    Next
    $bToArray = GUICtrlCreateButton('Read To Array', 10, 230, 130, 20)
    GUISetState()

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

    While True
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $bToArray
    $count = _GUICtrlListView_GetItemCount($hListview)
    Local $aLV[$count][2]
    For $i = 0 To $count -1
    $tmpArray = _GUICtrlListView_GetItemTextArray($hListview, $i)
    $aLV[$i][0] = $tmpArray[1]
    $aLV[$i][1] = $tmpArray[2]
    Next
    _ArrayDisplay($aLV)
    EndSwitch
    WEnd

    [/autoit]
  • Das ist gut! Cool xD

    Ich hab das ähnlich gelöst (hier ohne das Array am Ende)

    [autoit]

    $a = _GUICtrlListView_SetItemSelected($GUIList,-1)
    $tmpAr = _GUICtrlListView_GetSelectedIndices($GUIList, True)
    MsgBox(0, '', _GUICtrlListView_GetItemText($GUIList,5))

    [/autoit]

    aber nicht so elegant wie du xD