ListView - bestimmte Zeilen (Text) farbig

  • Hallo zusammen,

    irgendwie bekomme ich es nicht hin. Hab zwar hier im Forum einige Threads dazu gefunden, aber irgendwie bekomme ich nichts vernünftig ans laufen.

    Da es mit normalen Board-Mitteln nicht funktioniert hat, habe ich dann ein Script von Bugfix gefunden. Aber leider crasht Autoit immer, wenn ich es ausführe.

    Hier mal den interessanten Code:

    [autoit]


    $gui = GUICreate("mIRQ", 500, 500)
    ...
    $list1 = GUICtrlCreateListView("||ID|Nick|Pack|File", 1, 43, 498, 438, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_HEADERDRAGDROP, $LVS_EX_CHECKBOXES))
    ...
    _GUICtrlListView_Formatting_Startup($gui, $list1)
    ...
    For $i = 1 To $DBCount
    GUICtrlCreateListViewItem("|"& $aResult[$i][0] &"|" & $aResult[$i][1] & "|" & $aResult[$i][2] & "|" & $aResult[$i][3] & "|" & $aResult[$i][4], $list1)
    If $aResult[$i][0] = "Q" Or $aResult[$i][0] = "D" Then
    _GUICtrlListView_SetItemChecked($list1, $i - 1, True)
    ElseIf $aResult[$i][0] = "x" Then
    _GUICtrlListView_FormattingCell($list1, $i - 1, 5, -1, 0x696969, 6, Default)
    ;~ _GUICtrlListView_SetTextColor($list1[$i], 0x696969)
    ;~ GUICtrlSetFont($i -1, 6, Default, 2)
    ;~ GUICtrlSetColor($i -1, 0x696969)
    EndIf
    Next

    [/autoit]
    • Offizieller Beitrag

    Wenn du ganze Zeilen färben möchtest, geht das einfacher:

    [autoit]

    #Include <GuiListView.au3>

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

    Local $gui = GUICreate('Test 1')
    Local $LV = GUICtrlCreateListView("Col 1|Col 2", 15, 15, 300, 250)
    Local $hLV = GUICtrlGetHandle($LV)
    _GUICtrlListView_SetColumnWidth($hLV, 0, 148)
    _GUICtrlListView_SetColumnWidth($hLV, 1, 148)

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

    Global $aLV_Item[30]
    For $i = 1 To 30
    $aLV_Item[$i-1] = GUICtrlCreateListViewItem(Random(10000, 1000000, 1) & '|' & Random(10000, 1000000, 1), $LV)
    Next

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

    GUISetState()

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

    _SetItemColor($aLV_Item[1], 0xFFFF00) ; Zeile 2 färben
    Sleep(2000)
    _SetItemColor($aLV_Item[1]) ; Zeile 2 zurücksetzen

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

    Do
    Until GUIGetMsg() = -3
    GUIDelete($gui)

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

    Func _SetItemColor($ID_Item, $iColor=0xFFFFFF)
    GUICtrlSetBkColor($ID_Item, $iColor)
    EndFunc

    [/autoit]