Hi @all
ich kenn hier im Forum die nette Lösung von Bugfix, wie man jedem Feld eines Listviews eigene Farben zuordnen kann.
Ich möchte (auch der Geschwindigkeit halber) eine extrem abgespeckte Lösung dessen verwenden.
Ich erstelle eine Urlaubsliste, in der stehen links die Namen der Leute und ansonsten steht im Listview nichts drin, also alle Spalten (eine je Tag - 31 in der Darstellung) sind leer.
Ich möchte direkt beim Erstellen eines Listviewitems in dieser Zeile das Subitem 5, 23,24 und 25 blau färben.
Ich muss jedes dazu einmal ansteuern, das ist mir schon klar.
Wie lässt sich dies mit möglichst wenig Programmschritten machen?
Das Gesamte Listview muss nicht sortierfähig sein, ich benötige keine Textfärbung, Fontgröße, Art etc., ich benötige keine Default-Werte, die StandartListViewfärbung ist ok, es wird auch nicht aktualisiert, da die flüssigste Aktualisierung (z.B. der Benutzer schaltet die Darstellung auf den nächsten Monat) bei mir aus zwei ChildGUIs besteht, eine wird dargestellt, eine zweite ChildGUI wird ausgeblendet. Bei der Aktualisierung wird in der ausgeblendeten ein Listview erzeugt, dieses gefüllt - farbig angepasst und anschließend sichtbar gemacht. Dabei wird das bis dahin sichtbare ChildGUI ausgeblendet und das Listview darin deleted.
Daher benötige ich auch keinen Firlefanz bei der Einfärbung der einzelnen SubItems - bei jeder Aktualisierung wird das gesamte Listview wieder entfernt.
Kann mir jemand (Bugfix selbst vielleicht) eine Möglichkeit aufzeigen, das Subitem direkt nach dem Erzeugen des Items anzusprechen?
Gibts da nen DLLCall oder an welcher Stelle des BugFix-Codes genau wird das Subitem gefärbt? Ich seh da immer nur nen Schwung DllStructGetData, aber keinen DLLCall, bei welchem das ganze wieder an das ListView übergeben wird.
BspCode:
[autoit]
For $i = 1 To UBound($AWUeberblickMA,2)-1 ;Die MAs werden einzeln durchgegangen
GUICtrlCreateListViewItem($i &"|" & $AWUeberblickMA[0][$i][1], $AWUeberblickLV[$AWUeberblickLV[7]+1]) ;Einbindung desListViewItems - bestehend aus dem Namen des MAs
For $j = $Monatsstart To $Monatsende ;Die einzelnen Tage des Monats werden nach Werten durchsucht
If $AWUeberblickMA[$j][$i][2] <> "" Then XXX (ListviewSubitem-BKColor einstellen) ;Wenn eine Farbe im MA-Array vorhanden ist, dann soll diese zum Einfärben verwendet werden
Next
Next