Da man Item im ListCtrl nicht einzeln einfärben kann, wollte ich zumindest über farbige Images in der Spalte 0 Markierungen signalisieren.
Jedoch wird bei Verwendung des Styles: wLcIcon/wLcSmallIcon dann nur die erste Spalte der Liste angezeigt.
Das Bsp. zeigt alle Spalten ohne den Icon-Style. Werden die auskommentierten Zeilen aktiviert und statt dessen die Zeilen mit der # ***** Markierung auskommentiert, ist der IconStyle aktiv und nur die erste Spalte (mit den Images) ist sichtbar.
Den angehängten Ordner mit den Images runterladen und imgPath entsprechend anpassen.
Code
import wNim/[wApp, wFrame, wPanel, wListCtrl, wImageList, wBitmap]
import os
let
imgPath = r"C:\CODE\nim\_myExamples_\bmp_pur_16x16" # PFAD ANPASSEN !!!
app = App()
frame = Frame(title="Test ImageList",size=(600,300))
panel = frame.Panel()
# list = panel.ListCtrl(size=(560,240), pos=(10,10), style=wLcReport or wBorderDouble or wLcSingleSel or wLcSmallIcon)
list = panel.ListCtrl(size=(560,240), pos=(10,10), style=wLcReport or wBorderDouble or wLcSingleSel) # *****
var il = ImageList(size=(16,16), mask=false, initialCount=0)
il.add(Bitmap(joinPath(imgPath, "green.bmp")))
il.add(Bitmap(joinPath(imgPath, "red.bmp")))
# list.setImageList(il)
list.appendColumn(text="Column 0", width=150)
list.setColumnFormat(0, wListFormatLeft)
list.appendColumn(text="Column 1", width=110, format=wListFormatRight)
list.appendColumn(text="Column 2", width=110, format=wListFormatRight)
list.appendColumn(text="Column 3", width=wListAutosizeUseHeader)
var imgIndex: int
for i in 0..10:
if (i mod 2) == 0: imgIndex = 0 else: imgIndex = 1
# list.appendItem([$i&"-0", $i&"-1", $i&"-2", $i&"-3"], imgIndex)
list.appendItem([$i&"-0", $i&"-1", $i&"-2", $i&"-3"]) # *****
frame.wIdExit do ():
frame.delete()
frame.center()
frame.show()
app.mainLoop()
Alles anzeigen
Fehler bei mir oder muss das so?
Und eines ist mir noch aufgefallen:
Die Header werden sinnloser Weise genauso ausgerichtet, wie die Item. Habt ihr da schon eine Lösung für?