Q&A

  • 질문)DB그리드 row별 색상 변경시 문제점 좀 봐주십쇼.
row별로 필드에 있는 데이타에따라

색상을 변환시키려고 합니다.

처음 DataDrawCell에 하니 안돼더군요 뒤져서 뒤져서 어떻게 찾아보니.

DBgrid.Cloumn.state := csDefault;

로 하면 된다더기에 했죠 아무생각없이...

그러니 정말 색상은 바뀌더군요

그러나...

전 CalcField를 무지하게 써놓았음이니 ㅠㅠ



필드가 전부 다시 코드값과 원래의 이름으로 돌아가더군요

이것 해결방안을 아시는분 좀 답변 기다리겠습니다. ㅠㅠ

2  COMMENTS
  • Profile
    블랙봉 2001.07.06 03:01
    마지막에 말씀 하신 내용이 무슨 말씀인지 이해를 못했습니다.

    제가 다음과 같은 소스로 테스트 해보니 되는 것 같은데요.



    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

    DataCol: Integer; Column: TColumn; State: TGridDrawState);

    begin

    if TDBGrid(Sender).DataSource.DataSet.FieldByName('MODULE_INDEX').AsInteger = 1 then

    begin

    TDBGrid(Sender).Canvas.Brush.Color := clBlue;

    end

    else

    begin

    TDBGrid(Sender).Canvas.Brush.Color := clRed;

    end;

    TDBGrid(Sender).Canvas.FillRect(Rect);

    TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);

    end;



    CalcField는 테스트로 하나만 사용했습니다.







    aparadin wrote:

    > row별로 필드에 있는 데이타에따라

    > 색상을 변환시키려고 합니다.

    > 처음 DataDrawCell에 하니 안돼더군요 뒤져서 뒤져서 어떻게 찾아보니.

    > DBgrid.Cloumn.state := csDefault;

    > 로 하면 된다더기에 했죠 아무생각없이...

    > 그러니 정말 색상은 바뀌더군요

    > 그러나...

    > 전 CalcField를 무지하게 써놓았음이니 ㅠㅠ

    >

    > 필드가 전부 다시 코드값과 원래의 이름으로 돌아가더군요

    > 이것 해결방안을 아시는분 좀 답변 기다리겠습니다. ㅠㅠ

  • Profile
    aparadin 2001.07.06 03:54
    헉...이럴수가....감사함다.

    전 DrawDataCell에서 했었어요...

    ㅠㅠ

    몬말인지 모르겟지만 잘 되는군요 감사함다.