감사합니다...^^
권익수 님이 쓰신 글 :
: 아래 소스를 참고하세요!
: // DBGrid의 DefaultDrawing 속성을 False로...
: procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
: DataCol: Integer; Column: TColumn; State: TGridDrawState);
: begin
: with TDBGrid(Sender) do
: begin
: if gdSelected in State then
: begin
: Canvas.Brush.Color := clHighlight;
: Canvas.Font.Color := clHighlightText;
: end
: else
: begin
: if (Table1.FieldByName('Area').Value > 1000000) then
: Canvas.Brush.Color := clRed
: else Canvas.Brush.Color := clWindow;
: Canvas.Font.Color := clBlack;
: end;
: DefaultDrawColumnCell(Rect, DataCol, Column, State);
: end;
: end;
:
: 이승근 님이 쓰신 글 :
: : Grid 옵션중에 RowSelect 기능을 True로 설정하면 이 기능에 grid에 막대바가 표시되어 한줄한줄 보기가 편하게
: :
: : 설정을 해줍니다...
: :
: : 물론 바가 위치했을때 글자색이 검정색에서 흰색으로 반전되어 표시되어 보기에도 편합니다...
: :
: : 그런데 이 기능이 DBGrid의 DrawColumnCell 이벤트와 연동이 되면 문제아닌 문제를 야기하네요...ㅜㅠ
: :
: : 표시 레코드들 중 조건에 맞는 내용의 레코드의 색을 강제로 부여했을 경우
: :
: : 해당 레코드에 막대바가 위치하면 글자색이 반전되지 않고 부여한 색을 그대로 유지한다는 겁니다...
: :
: : 그러다 보니 흰색바탕일때는 보기가 괜찮은데 막대만 위치하면 글씨들이 잘 보이지 않는다는 문제가 발생합니다...
: :
: : 그렇다고 보색대비 밝은 색으로 색을 부여하면 막대가 위치했을때는 잘 보여도 막대가 위치하지 않는 자료들의
: :
: : 글씨는 잘 보이지 않는다는 단점이 생깁니다...
: :
: : 결국 이벤트에 색을 부여해도 막대가 위치했을때 막대색에 맞추어 색이 보색으로 반전되어서 표시했으면 싶은데
: :
: : 방법이 있을까요??
|