Q&A

  • [질문 급함]DBGrid에서의 특정레코드의 색을 ....
안녕하세요.. 델초보임다..

다름이 아니라 Query에서 Select를 한 다음 DBGrid로 데이타를

가져올 때 특정 필드값에 따라서 DBGrid의 레코드의 색을 지정해

주고자 하는데 방법을 잘 모르겠네요....



예를 들어 필드A의 값이 'Y' 일때만 해당 행의 색을 노란색으로 하고

이외의 것은 흰색으로 할려고 합니다....



여러 고수님의 조언 부탁드립니다.

그럼 이만.........



1  COMMENTS
  • Profile
    홍성락 2001.08.29 20:29
    델초보 wrote:

    > 안녕하세요.. 델초보임다..

    > 다름이 아니라 Query에서 Select를 한 다음 DBGrid로 데이타를

    > 가져올 때 특정 필드값에 따라서 DBGrid의 레코드의 색을 지정해

    > 주고자 하는데 방법을 잘 모르겠네요....

    >

    > 예를 들어 필드A의 값이 'Y' 일때만 해당 행의 색을 노란색으로 하고

    > 이외의 것은 흰색으로 할려고 합니다....

    >

    > 여러 고수님의 조언 부탁드립니다.

    > 그럼 이만.........

    ///////////////////////////////////////////////////////////////////////

    아래를 참조해보세요

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

    Field: TField; State: TGridDrawState);

    begin

    with TDBGrid(Sender) do begin

    if Fields[4].AsString = 'A' then begin

    Canvas.Brush.Color := clYellow;

    Canvas.Font.Color := clBlack;

    Canvas.FillRect(Rect);

    //필드타입에 따라 다시쓰는 위치를 조정하세요.

    if Field.DataType = ftString then

    canvas.TextRect(Rect, Rect.Left + 2, Rect.Top, Field.AsString)

    else

    canvas.TextRect(Rect, Rect.Right - canvas.TextWidth(Field.AsString) - 3, Rect.Top, Field.AsString)

    end;

    end;

    end;