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.