안녕하세요.
정성훈.해미입니다.
DBGrid의 DrawColumnCell이벤트에 다음과 같이 해보세요.
확인한 건 아니라서 확실히 된다고 장담 못함......ㅋ
StringGrid에서 같은 구현을 사용했었는데 그리드라서 비슷할 것 같네요.
이벤트에 DataCol이 행 번호를 의미하는 인자입니다.
아마 오브젝트인스펙터에서 DefaultDrawing을 false로해야 동작할 꺼여욥.
즐프하셈~~
if(DataCol==1)
{
((TDBGrid*)Sender)->Canvas->Font->Color = clRed;
}
else if(DataCol==2)
{
((TDBGrid*)Sender)->Canvas->Font->Color = clYellow;
}
//----------------------------------------
// ┏┓
// ┣┻┓┏ ┃┃ 작은 생각이 세상을 바꾼다
// ┃♡┃┣ ┣┫┏┓
// ┗━┛┗ ┃┃┣┫┏┓┏┓ - 정성훈.해미
// ━━━━━━━━━┣┛┣┛┗┫━━━━━━
// Web Site:
http://www.hemistory.net
// e-mail: sage5nor@chol.com
//----------------------------------------
미나 님이 쓰신 글 :
: 제목처럼 DBGrid 각각 행마다 글씨 색깔을 다르게 해주고싶습니다.
: QnA 검색 결과
: 델파이로 구현한 것은 있긴한데 제가 잘 모르겠더라구요
:
: 그 외에 특정 행을 마우스 클릭했을 때 그 행의 색깔을 바뀌게 해주는 소스는 찾았는데요
:
: 아래 소스
: ------------------------------------------------------------------------------------------
: DrawColumnCell 이벤트안에서
: if(Column->FieldName != "EMP_NAME")//"EMP_NAME"이외의 컬럼은 디폴트로 그리라는 의미.
: return; //원하시는 컬럼의 이름을 기술하시면 됩니다.
: Variant vFieldVal = Column->Field->Value;
:
: if (State.Contains(Grids::gdSelected)) {//선택된 행
: DBGrid3->Canvas->Brush->Color = clBlue;
: DBGrid3->Canvas->FillRect(Rect);
: DBGrid3->Canvas->Font->Color = clRed;
: }
: else { //선택되지 않은 행
: DBGrid3->Canvas->Brush->Color = clYellow;
: DBGrid3->Canvas->FillRect(Rect);
: DBGrid3->Canvas->Font->Color = clBlack;
: }
: DBGrid3->Canvas->TextOut(Rect.Left + 2, Rect.Top + 2, vFieldVal);
: -----------------------------------------------------------------------------------
: 제가 해주고싶은 것은
: 1행 글씨 색깔 - 빨강
: 2행 글씨 색깔 - 노랑
: 이런식으로 행마다 색깔을 고정시키고픈데..
: 각 '행'을 어떻게 지정해야할지 모르겠습니다.
:
: 검색결과
: Query->MoveBy(index)
: 를 이용하라는데 잘 안되네요..능력부족 ㅜ,ㅜ
:
: 도움 주시면 너무너무 감사드리겠습니다. *^^*