Q&A

  • grid에서 색깔은 잘 바뀌는데 글자가 안나오네용??


안녕하세요. 고수님들 지금 예제를 보고 DBgrid에서 특정 row의 색을 바꾸는 작업을



하고 있는데 특정 row의 색은 잘 바뀌는데 색을 바꾸고 나면 데이타가 가장 앞쪽의 한필



드만 표시가 되고 나머지는 마우스로 클릭할때까지 숨어 있습니다. 어찌된 영문인지 좋



은 답변부탁합니다. 그럼 수고를...

1  COMMENTS
  • Profile
    홍성락 2001.11.21 01:27
    이재광 wrote:

    >

    > 안녕하세요. 고수님들 지금 예제를 보고 DBgrid에서 특정 row의 색을 바꾸는 작업을

    >

    > 하고 있는데 특정 row의 색은 잘 바뀌는데 색을 바꾸고 나면 데이타가 가장 앞쪽의 한필

    >

    > 드만 표시가 되고 나머지는 마우스로 클릭할때까지 숨어 있습니다. 어찌된 영문인지 좋

    >

    > 은 답변부탁합니다. 그럼 수고를...

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

    참조할 소스가 없네요,

    일단 아래것을 참고해보세요

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

    Field: TField; State: TGridDrawState);

    begin



    with TDBGrid(Sender) do begin

    if (SelectedRows.CurrentRowSelected) 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;