|
디비그리드에서 한 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 에서 해야 되는것 같은데
:
: 구체적으로 어떠케 해야 하는것인지 고수님들의 가르침을 받고자 합니다.
:
:
|