Jak w StringGrid wyświetlić wiersze w różnych kolorach (tło i/lub czcionki) ?
0
0
Tryb OwnerDraw - tylko. Też tego kiedyś używałem - oto pełna funkcja.
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{if (State.Contains(gdFocused)) //Ustawienie parametrów aktywnej komórki
{StringGrid1->Canvas->Brush->Color = CPFocused->SelectionColor;
StringGrid1->Canvas->FillRect(Rect); //Kolorowanie tła
StringGrid1->Canvas->Font->Style = TFontStyles()Canvas->TextWidth(StringGrid1->Cells[ACol][ARow])-2,
Rect.Top+2,
StringGrid1->Cells[ACol][ARow]);
return;
}
else if //Ustawienie parametrów stałych komórek (po lewej i u góry)
(State.Contains(gdFixed)) StringGrid1->Canvas->Brush->Color = CPFixed->SelectionColor;
else if //Ustawienie parametrów zaznaczonych komórek
(State.Contains(gdSelected)) StringGrid1->Canvas->Brush->Color = CPSelected->SelectionColor;
else //Ustawienie parametrów zwykłych komórek
StringGrid1->Canvas->Brush->Color = CPElse->SelectionColor;
StringGrid1->Canvas->FillRect(Rect); //Kolorowanie tła
// StringGrid1->Canvas->Brush->Color = clBlack; //Tło pod textem
StringGrid1->Canvas->Font->Color = clBlack; //Kolor textu
StringGrid1->Canvas->TextRect(Rect, Rect.Left+2, Rect.Top+2, StringGrid1->Cells[ACol][ARow]);
}
CPcostam to komponenty ColorPick - zamień je na jakieś wartości kolorów. Mi już się nie chciało :-P
P.S. Pozdrowienia dla Mazzy'ego z Gondolandu :-)