Q&A

  • DBGrid에서 특정 컬럼에 특정값에만 다른 폰트로 나올수 있는지 궁금합니다.
DBGrid에서 특정 컬럼에 특정값에만 다른 폰트로 나올수 있는지 궁금합니다.

--------------------------------------
123 : 234 : 345 : 456   ---> 필드명
--------------------------------------
  1 :   2 :   3 :   4   ---> 데이타값
--------------------------------------
  3 :   2 :   4 :   5   ---> 데이타값
--------------------------------------
  4 :   1 :   5 :   6   ---> 데이타값
--------------------------------------
  4 :   3 :   5 :   2   ---> 데이타값
--------------------------------------

일때 345 컬럼에 있는 3 란 값의 글자 폰트색상을 Blue 로 하고 4 값는 Red로 표기하고
5란 값은 Black으로 하자면 어떻게 해야 하는지 조언을 해 주셨으면 합니다.

다른 123,234,456 컬럼 은 그냥 Black로 나오면 되구요...

그럼 조언을 기다리면 델 초보 올림니다.
2  COMMENTS
  • Profile
    공성환 2002.04.13 21:25
    DrawColumnCell에서 제어하시면 될것같습니다...
    이거는 제가 했던소스입니다... 귀찮나서 그냥... 실력도 없지만...
    그냥 참조만 하세요...
    글구 검색하시면 유사한 내용이 있을겁니다...

    procedure TForm_ZAA0200A.DBG_ZAAT020DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumnEH;
      State: TGridDrawState);
    begin
      if Query_ZAAT020.Active = False then
        System.Exit;
      if (Query_ZAAT020.Bof) and (Query_ZAAT020.Eof) then
        System.Exit;

      if not Query_ZAAT020.Eof then
      begin
        // 변경된 필드는 다른색상으로...
        if (Column.Field.OldValue <> Column.Field.NewValue) then
          TDBGridEH(Sender).Canvas.Font.Color := clRed
        else if gdSelected in State then
          TDBGridEH(Sender).Canvas.Font.Color := clWhite
        else
          TDBGridEH(Sender).Canvas.Font.Color := clBlack;
      end;

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



  • Profile
    Carnival 2002.04.13 21:56
    답변 고맙습니다.

    제가 원하는 것은 레코드 라인 전체 색상 변경이 아닌 부분 컬럼에서만 변경하는 겁니다.

    그럴경우에 필요한 도움을 주셨으면 합니다.

    레코드가 3개 있을경우 전체 폰트 색상은 검은색... 제가 원했던 1이란 필드에 0값이면 Black 1값이면 Blue 2값이면 Red 로 나타나게 해보자는 의도입니다.

    답변 감사드리며 기회 되신다면 또 한번 답글을 주셨으면 합니다.

    감사합니다.