C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[1005] DBGrid에서 레코드 구분해서 라인별 다른 색 칠하기.
김태선 [cppbuilder] 9062 읽음    2010-07-28 14:24
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;  // 배경색은 이렇게 하면 쉽게 바뀌죠.
    }
    ;
    ;
}
//---------------------------------------------------------------------------

+ -

관련 글 리스트
1005 DBGrid에서 레코드 구분해서 라인별 다른 색 칠하기. 김태선 9062 2010/07/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.