AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Problem beim Einfärben von ListView (Sub)Items
Thema durchsuchen
Ansicht
Themen-Optionen

Problem beim Einfärben von ListView (Sub)Items

Ein Thema von luke2 · begonnen am 3. Jun 2012 · letzter Beitrag vom 3. Jun 2012
Antwort Antwort
luke2

Registriert seit: 17. Jun 2009
117 Beiträge
 
#1

Problem beim Einfärben von ListView (Sub)Items

  Alt 3. Jun 2012, 16:31
Delphi-Version: XE2
Hi,

ich benutze folgenden Code, um jedes 2. Item einer ListView einzufärben:
Delphi-Quellcode:
procedure TForm1.lvTestCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if Odd(Item.Index) then
    Sender.Canvas.Brush.Color := clSilver
  else
    Sender.Canvas.Brush.Color := clWindow;
end;
Zudem noch folgenden Code, um bestimmte SubItems einzufärben:
Delphi-Quellcode:
procedure TForm1.lvTestCustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  if SubItem = 3 then
  begin
    if Item.SubItems[SubItem - 1] = 'OKthen
      Sender.Canvas.Font.Color := clGreen
    else
      Sender.Canvas.Font.Color := clRed;
  end
  else
    Sender.Canvas.Font.Color := clWindowText;
end;
Das Problem ist jetzt, dass nach dem Einfärben des 2. SubItems die Einfärbung (clSilver, s.o) für diese Zeile aufhört und auch noch alle weiteren SubItems (grün) eingefärbt werden.

Warum ist das so? Ich habe im Code doch festgelegt, dass die Farbe wieder clWindowText (schwarz) sein soll, wenn es nicht das 2. SubItem ist.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Problem beim Einfärben von ListView (Sub)Items

  Alt 3. Jun 2012, 18:30
Es gibt wohl ein Problem mit dieser einen Systemfarbe. (einige andere Systemfarben funktionieren aber)
Delphi-Quellcode:
  else
    Sender.Canvas.Font.Color := ColorToRGB(clWindowText);
$2B or not $2B
  Mit Zitat antworten Zitat
luke2

Registriert seit: 17. Jun 2009
117 Beiträge
 
#3

AW: Problem beim Einfärben von ListView (Sub)Items

  Alt 3. Jun 2012, 18:43
Danke himitsu (mal wieder, wie oft du mir schon geholfen hast... )
  Mit Zitat antworten Zitat
Metschu

Registriert seit: 31. Dez 2006
151 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: Problem beim Einfärben von ListView (Sub)Items

  Alt 3. Jun 2012, 19:46
Supi, dann ist mein Problem mit dem Färben des Hintergrundes auch gelöst

"ClWindow" mochte er auch nicht direkt, hatte es dann als Workaround immer mit "ClWhite" "Erzwungen", blöd nur wenn jemand ne andere Desktop Farbeneinstellung hatte
Torsten
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz