Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Farbe von Columns ändern (TListView)

  Alt 2. Mai 2004, 13:30
Nicht direkt
Ohne die Abfrage in welchem Item du bist, kannst du im OnAdvancedCustomDrawSubItem (nicht OnCustomDrawSubItem) jedes SubItem (also Spalte 2-X) ganz easy einfärben.
Im OnAdvancedCustomDrawSubItem:
  Sender.Canvas.Brush.Color := ColumnColors[SubItem]; Für die erste Spalte muss noch die Breite ermittelt werden (sonst könnte es passierenn, dass die 2. überzeichnet wird).
Im OnAdvancedCustomDrawItem:
Delphi-Quellcode:
var
  ItemRect: TRect;
begin
  if Stage = cdPrePaint then
  begin
    ItemRect := Item.DisplayRect(drLabel);
    ItemRect.Right := Sender.Column[0].Width;
    with Sender.Canvas do
    begin
      Brush.Color := ColumnColors[0];
      TextRect(ItemRect, ItemRect.Left + 2, ItemRect.Top + 2, Item.Caption);
    end;
  end;
end;
Und natürlich brauch das Form noch ein globale Konstante ( ) :
Die Anzahl der Elemente musst du an die Spaltenanzahl anpassen
Delphi-Quellcode:
const
  ColumnColors: array[0..5] of TColor = (clCream
                                        ,clsilver
                                        ,clMoneyGreen
                                        ,clSkyBlue
                                        ,$00D9FFF1
                                        ,$00CECEFF);
Nachtrag: Habe jetzt erst gesehen, dass du die Überschriften ändern willst.
Sorry, kA. Vielleicht hat es Matzte inzwischen rausgefunden.
  Mit Zitat antworten Zitat