Q&A

  • DrawDataCell이 동작이 안하는 이유가 먼지..
DbGrid에 내용을 뿌려주면서 DrawDataCell 이벤트를 넣엇는데요..
동작을 안합니다. 이벤트가 실행이 되는지 찍어봐도
전혀 이벤트가 동작을 안합니다..
따로 DBGrid에 설정을 해주어야 하는 것인지..
대답좀 부탁드립니다..

소스는 아래와 같습니다.

procedure TMainF.DBGrid1DrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState);
var
tmpString : String;
begin
With TDBGrid(Sender) Do
Begin
   If Field.FieldName = 'price' then
   begin
     tmpString := FormatFloat('#,0', Field.DataSet.FieldByName('price').AsFloat);
     canvas.TextRect(Rect, Rect.Left + 2, Rect.Top+2, tmpString);
   end;
End;
end;

고수님들 부탁드립니다.
2  COMMENTS
  • Profile
    버섯 2002.09.06 22:29
    drawdatacell
    drawcolumncell 두가지가 있는데...
    drawdatacell 은 그리드에 형식(컬럼들)이 정해지면 동작하지 않습니다..

    따라서 drawcolumncell 을 사용하세요.. 간편합니다.

    (예)
    procedure TfrmBalju.DBGrid2DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
         if query2.fieldbyname('pm29m_status').asstring = 'N' then dbGrid2.Canvas.Font.color := clgray;

         dbGrid2.DefaultDrawColumnCell(rect,datacol,column,state);
    end;

    즐코~
  • Profile
    최용일 2002.09.04 20:34
    안녕하세요. 최용일입니다.

    DefaultDrawing을 False로 해놓고 해보세요...

    이 이벤트보다는 OnDrawColumnCell를 쓰시는것이 더 좋다네요...

    ^^ 항상 즐코하세요...