|
kobetime 님이 쓰신 글 :
: 갑작스럽게 빌더를 쓰게 되서 모르는게 많네요.
: StringGrid 를 사용하면서 각각의 셀에 다른 색깔의 글자와 바탕색을 적용하고 싶은데요.
: 방법이 있을까요?
안녕하세요.
스트링그리드에서 원하는 기능을 하려면 OnDrawCell이벤트를 이용하면 됩니다.
아래에 예를 참조하세요.
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
// ACol, ARow은 현재 그려질 셀의 Col과 Row값입니다.
// OnDrawCell은 셀이 그려질때 발생하는데, 넘어오는 인자로는 그려질 셀의
// Col, Row가 넘어오고 그 셀의 영역을 알려주는 Rect값이 넘어옵니다.
// State은 스트링그리드의 상태이구요.
// 아래예제는 ACol과 ARow에 대해 0보다 큰곳에 대해 바탕색을 옅은 노란색으로,
// 폰트 색상을 파랑색으로 하는 코드입니다.
// 조건에 따라, 바탕색과, 폰트색상을 적절히 변화시키면
// 원하는 결과를 얻으리라 봅니다.
if (ACol > 0 && ARow > 0)
{
StringGrid1->Canvas->Brush->Color = TColor(0x0080FFFF);
StringGrid1->Canvas->Font->Color = clBlue;
StringGrid1->Canvas->FillRect(Rect);
StringGrid1->Canvas->TextOut(Rect.Left+1,Rect.Top+1,StringGrid1->Cells[ACol][ARow]);
}
}
//---------------------------------------------------------------------------
그럼..
|