Autor Beitrag
rafi@work
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 147

Win2000 Prof
D7 Enterprise
BeitragVerfasst: Di 02.08.05 15:23 
Hallo zusammen.

Ich will beim "OnCustomDrawItem" Ereigniss zeilen in einer ListView verschieden einfärben. Der ListView werden laufend neue Zeilen hinzugefügt und wieder gelöscht. Nun habe ich das Problem, dass "OnCustomerDrawItem" nicht die ganze Zeile färbt, sondern jeweils nur das Subitem[0]. Wenn ich aber auf eine Zeile klicke, wird die Farbe der geklickten Zeile korrekt dargestellt.

Im OnCustomDrawItem Ereigniss steht folgendes:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  RowColor : TColor;
begin
  if (Item=nil) then Exit;
  RowColor := $BFBFBF;
  if lowercase(Item.SubItems[0]) = 'undefined' then RowColor:=$BFBFBF;   //grau
  if lowercase(Item.SubItems[0]) = 'new' then RowColor:=$66FFFF;         //gelb
  if lowercase(Item.SubItems[0]) = 'handled' then RowColor:=$00FF66;     //hellgrün
  if lowercase(Item.SubItems[0]) = 'connected' then RowColor:=$009900;   //grün
  if lowercase(Item.SubItems[0]) = 'transfered' then RowColor:=$FFCC00;  //orange
  if lowercase(Item.SubItems[0]) = 'hangup' then RowColor:=$BFBFBF;      //grau
  if lowercase(Item.SubItems[0]) = 'alerting 1' then RowColor:=$008CFF;  //orange
  if lowercase(Item.SubItems[0]) = 'alerting 2' then RowColor:=$008CFF;  //orange
    Sender.Canvas.Brush.Color := RowColor;


Habe es auch schon mit Begin-,End-Update versucht. Repaint half leider auch nichts.

Kann ich dieses Problem irgendwie lösen, oder ist dies alg. eine Schwäche des OnCustomDrawItem Ereignisses, oder was weiss ich... :roll:

Das ganze sieht dann so aus:
Edit: Link entfernt
Zuunterst ist nur das SubItem[0] Grün und Hellgrün, es müsste aber eigentlich die ganze Zeile färben.
Die grünen und orangen Zeilen oben habe ich markiert, somit wird auch die Anzeige des markierten Items aktualisiert und das ganze Item erhält die gleiche Farbe. So sollte es sein!

Bin mit meinem Latein am Ende. :(
Für jede Hilfe bin ich sehr dankbar!

Gruss


Zuletzt bearbeitet von rafi@work am Di 09.08.05 16:27, insgesamt 1-mal bearbeitet
rafi@work Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 147

Win2000 Prof
D7 Enterprise
BeitragVerfasst: Do 04.08.05 15:07 
Problem gelöst.

ausblenden Delphi-Quelltext
1:
ListViewCalls.Items[i].Update;					


:roll: