ListView1->ViewStyle = vsList;
Chciałbym pokolorować teksty itemów. W poniższym przykładzie poprawnie koloruje tło, ale nie reaguje na ustawienia
ListView1->Canvas->Font->Color.
Cały czas teksty mam rysowane zgodnie z
ListView1->Font->Color
Znalezione porady dotyczą kolorowania tekstu w kolumnach dla ViewStyle = vsReport.
Ma ktoś jakieś sugestie?
KOD cpp: UKRYJ
void __fastcall TFrame_Unit1::ListView1AdvancedCustomDrawItem(TCustomListView *Sender, TListItem *Item, TCustomDrawState State, TCustomDrawStage Stage, bool &DefaultDraw)
{
String tekst = Item->Caption;
TRect rect = Item->DisplayRect(drLabel);
int x = rect.left + 2;
int y = rect.top + (rect.Height()-ListView1->Canvas->TextHeight(tekst))/2;
if ( tekst.Length() > 10 )
{
ListView1->Canvas->Brush->Color = clGreen;
ListView1->Canvas->Font->Color = clRed; // <-- to nie działa
}
else
{
ListView1->Canvas->Brush->Color = clWhite;
ListView1->Canvas->Font->Color = clBlue; // <-- to nie działa
}
// rysowanie
ListView1->Canvas->Rectangle(rect);
ListView1->Canvas->TextRect(rect, x, y, tekst);
}
{
String tekst = Item->Caption;
TRect rect = Item->DisplayRect(drLabel);
int x = rect.left + 2;
int y = rect.top + (rect.Height()-ListView1->Canvas->TextHeight(tekst))/2;
if ( tekst.Length() > 10 )
{
ListView1->Canvas->Brush->Color = clGreen;
ListView1->Canvas->Font->Color = clRed; // <-- to nie działa
}
else
{
ListView1->Canvas->Brush->Color = clWhite;
ListView1->Canvas->Font->Color = clBlue; // <-- to nie działa
}
// rysowanie
ListView1->Canvas->Rectangle(rect);
ListView1->Canvas->TextRect(rect, x, y, tekst);
}
[EDIT]
Po przeniesieniu kodu do ListView1CustomDrawItem koloruje fonty ale:
1. Błędnie koloruje wybrany item.
2. Gubi kolor fontu po najechaniu myszką na dany item.