DBGrid에서는 보통 각각의 Cell을 개발자가 직접 그려주는 경우가 많습니다.
이때 레코드별로 색깔을 달리 하고 싶을 때가 있습니다.
왜냐하면 그래야 이뻐지거든요.
보통은 이런 식으로 합니다.
DBGrid가 가지고 있는 DataSource의 DataSet에서
RecNo 프로퍼티를 참조하면 현재 레코드 번호를 알수 있습니다.
그 값을 칼라 매기는 기준 값으로 쓰면 되겠죠.
//---------------------------------------------------------------------------
void __fastcall TFormMain::DBGrid1DrawDataCell(TObject *Sender,
const TRect &Rect, TField *Field, TGridDrawState State)
{
TDBGrid *DBGrid = (TDBGrid*)Sender;
TCanvas *C = DBGrid->Canvas;
// ROW 레코드별로 구분해서 다른 칼라 주기.
TColor back_color = clWhite;
if (DBGrid->DataSource->DataSet->RecNo % 2 == 0)
backk_color = (TColor)0x00FFEEEE;
if (State.Contains(gdSelected))
{
C->Brush->Color = clHighlight;
}
else
{
C->Brush->Color = back_color; // 배경색은 이렇게 하면 쉽게 바뀌죠.
}
;
;
}
//---------------------------------------------------------------------------
|