Combobox, Buttons usw. im Listview

  • Hey,

    wollte mal fragen ob man mit dem Standard-Listview bestimmte Controls in ein Listviewitem/Subitem einfügen kann.
    Ich mach hier gerade ein Konfig. Programm bei dem sich die Listviewansicht im Prinzip anbietet.
    Allerdings wäre es sehr praktisch, wenn man den Input schon beim eingeben festlegen könnte, z.b. über eine Combobox.
    Somit könnte man schon hinterlegen auf welche Werte der .ini Eintrag geprüft wird (hier 1/0 für an/aus, aber wer weiss das schon außer dem Programmierer?)

    Zur Pfadauswahl wäre auch ein Button (mit Fileselectfolder Funktion oder so) sehr nützlich.

    Gruß nuts

  • "Irgendwie" geht das schon, kenne verschiedene Programme die sowas eingebaut haben.
    Nur ob das dann auch ein standard Listview wie in Autoit ist?

    Hier mal ein Beispiel zum Spielen und die .ini einzulesen:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <File.au3>

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

    global $ini = "" ;Pfad zur ini

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

    $Form1 = GUICreate("Ini read to Listview - Beispiel", 700, 500, -1, -1)
    $ListView1 = GUICtrlCreateListView("", 20, 20,660 , 350)
    $hlistview= GUICtrlGetHandle($ListView1)
    _GUICtrlListView_AddColumn($hListView, "Key", 200)
    _GUICtrlListView_AddColumn($hListView, "Value", 450)

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

    $Button2 = GUICtrlCreateButton("Iniread", 20, 420, 120, 33, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Button2
    _Initoliostview($hlistview, $ini)
    EndSwitch
    WEnd

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

    Func _Initolistview($hwnd, $path)
    ; nuts (http://www.autoit.de)
    ;$hwnd = Handle to the listview
    ;$path = ini path
    local $anames, $aread
    If not IsHWnd($hwnd) then
    SetError(1) ;not a handle -> @error = 1
    Return
    ElseIf not FileExists($path) then
    SetError(2) ;ini not found -> @error = 2
    Return
    endif
    $anames = IniReadSectionNames($path)
    $counter = -1;_GUICtrlListView_GetItemCount($hwnd)
    for $i = 1 to $anames[0]
    $aread = IniReadSection($path, $anames[$i])
    if @error then
    $counter+= 1
    _GUICtrlListView_EnableGroupView($hwnd)
    _GUICtrlListView_InsertGroup($hwnd, -1, $i, $anames[$i])
    _GUICtrlListView_AddItem($hwnd, "Kein Eintrag")
    _GUICtrlListView_SetItemGroupID($hwnd, $counter, $i)
    ContinueLoop
    endif
    _GUICtrlListView_EnableGroupView($hwnd)
    _GUICtrlListView_InsertGroup($hwnd, -1, $i, $anames[$i])
    for $x = 1 to $aread[0][0]
    $counter+= 1
    _GUICtrlListView_AddItem($hwnd, $aread[$x][0])
    _GUICtrlListView_AddSubItem($hwnd,$counter, $aread[$x][1],1)
    _GUICtrlListView_SetItemGroupID($hwnd, $counter, $i)
    next

    next
    endfunc

    [/autoit]