Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 

Re: Hintergrundfarbe Zeile ListView Inhalt-Abhängig

  Alt 23. Mär 2004, 07:04
@Alle: Bitte beim Thema bleiben

@Micha: Das Zauberwort dürfe .OnCustomDrawItem und .OnCustomDrawSubItem heissen.

Hier ein Beispiel:
Delphi-Quellcode:
var
 farbe : TColor;

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
  i_wert : Integer;
begin
  farbe := clWhite; //Standardfarbe
  i_wert := StrToInt (Item.SubItems.Strings[0]); // Inhalt von Spalte 2
  if i_wert <= 0 then
    farbe := clgreen;
  if i_wert < -14 then
    farbe := clYellow;
  if i_wert < -21 then
    farbe := clred;
  if i_wert > 0 then
    farbe := clblue;
  ListView1.Canvas.Brush.Color := farbe; // Hintergrundfarbe des Items setzen
end;

procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  ListView1.Canvas.Brush.color := farbe; // Hintergrundfarbe der SubItems setzen
end;
In OnCustomDrawItem werte ich den Inhalt des ersten SubItems (wo die Tagesdifferenz steht) aus.
Abhängig davon weise ich einer globalen Variablen einen Farbwert zu.
In OnCustomDrawSubItem verwende ich diese um die Hintergrundfabe zu setzen.
Das solltest Du eigentlich anpassen könnne.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat