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

C++빌더 Q&A
C++Builder Programming Q&A
[20706] Re:DBGrid 라인별 색깔.
김종화 [heaven75] 2224 읽음    2002-08-08 16:51
디비그리드에서 한 Row에 색깔을 주는 함수입니다..

예전에. 어딘가에서 보고. 정리해서 갖구 있던거구여.. 몇달전.. 유용하게 사용했던 함수였져.^^;;

근데.. 델파이 소스구여... 제가 씨빌더를 해본지 오래되서.. 씨빌더로 바꿔서 올려드리진

못하겠네요.. 초보라서.ㅠㅠ

그럼 도움이 되길 바랍니다..  좋은하루되세요....




  {============================================================================
      DBGrid에서 선택된 row의  color 변경
         row_color : 변경할 color  /  default_color : 선택되지 않은 row의 color
      OnDrawColumnCell 이벤트에서 사용할 것
  ----------------------------------------------------------------------------}
  procedure DBGrid_Selected_row_ChangeColor(Sender: TObject; const Rect: TRect;
                         DataCol: Integer; Column: TColumn; State: TGridDrawState;
                         row_color, default_color : TColor);
  {----------------------------------------------------------------------------
   사용예 )    해당 DBGrid 의 OnDrawCell 이벤트에서 사용할 것.
          procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
                          DataCol: Integer; Column: TColumn; State: TGridDrawState);
          begin
               DBGrid_Selected_row_ChangeColor(Sender, Rect, DataCol, Column, State,
                          clGreen , TDBGrid(Sender).Color);
          end;
  ============================================================================}


implementation

type
TCustomDBGridCracker = class(TCustomDBGrid);

//============================================================================

procedure DBGrid_Selected_row_ChangeColor(Sender: TObject; const Rect: TRect;
                         DataCol: Integer; Column: TColumn; State: TGridDrawState;
                         row_color, default_color : TColor);
begin
     with TCustomDBGridCracker(Sender) do
          if DataLink.ActiveRecord = Row - 1 then
             Canvas.Brush.Color := row_color
          else
             Canvas.Brush.Color := default_color;

     TCustomDBGridCracker(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;





궁금이 님이 쓰신 글 :
: 안녕하세요.
:
: 간단한 프로그램인데요
:
: 그 내용중에 위쪽엔 DBGrid가 있고
:
: 아래쪽엔 여러개의 Edit 가 있습니다.
:
: 페이지 업 혹은 다운을 하면 레코드가 이동이 되고
:
: Edit 입력후 저장하면 DBGird에 입력된 레코드가 나옵니다.
:
: 물론 페이지 업 다운 시에 레코드 이동이 되면 edit 박스에도 각 필드별 내용이 나오구요
:
: 제가 알고 싶은것은 페이지 업 다운시에 DBGrid 좌측에 현재 레코드를 알리는
:
: 삼각형 모양의 커서?? 가 있습니다.
:
: 그런데 그것보다는 현재레코드의 색깔을 주고 싶은데,,
:
: 찾아보니 셀별로는 있던데 한 라인(레코드) 전체적으로 색깔 주는건 없는것 같더라구요
:
: OnDrawDataCell 에서 해야 되는것 같은데
:
: 구체적으로 어떠케 해야 하는것인지 고수님들의 가르침을 받고자 합니다.
:
:

+ -

관련 글 리스트
20702 DBGrid 라인별 색깔. 궁금이 803 2002/08/08
20706     Re:DBGrid 라인별 색깔. 김종화 2224 2002/08/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.