Ili, malo drugacije:
Code:
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
if (State.Contains(gdFixed))
{
StringGrid1->Canvas->Brush->Color = clBtnFace;
StringGrid1->Canvas->Font->Color = clWindowText;
StringGrid1->Canvas->FillRect(Rect);
Frame3D(StringGrid1->Canvas, Rect, clBtnHighlight, clBtnShadow, 1);
}
else if (State.Contains(gdSelected))
{
StringGrid1->Canvas->Brush->Color = clHighlight;
StringGrid1->Canvas->Font->Color = clHighlightText;
StringGrid1->Canvas->FillRect(Rect);
}
else
{
StringGrid1->Canvas->Brush->Color = StringGrid1->Color;
StringGrid1->Canvas->Font->Color = StringGrid1->Font->Color;
StringGrid1->Canvas->FillRect(Rect);
}
RECT R = RECT(Rect);
UINT format = DT_SINGLELINE | DT_VCENTER;
// Prva kolona DESNO, druga kolona CENTRIRANO, ostalo LEVO
if (ACol == 1)
format = format | DT_RIGHT;
else if (ACol == 2)
format = format | DT_CENTER;
else
format = format | DT_LEFT;
AnsiString text = StringGrid1->Cells[ACol][ARow];
DrawText(StringGrid1->Canvas->Handle, text.c_str(), text.Length(), &R, format);
}