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;
고수님들 부탁드립니다.
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;
즐코~