大家好! 帮我看看
怎么样才能在程序里动态改变dbgrid行的颜色,不在DBGrid3DrawColumnCell()中改变能行吗?因为我是先查询显示记录后,通过一些比对再确定记录行的颜色,而DBGrid3DrawColumnCell()要在获得记录时就改变了颜色.
怎么样才能在程序里动态改变dbgrid行的颜色,不在DBGrid3DrawColumnCell()中改变能行吗?因为我是先查询显示记录后,通过一些比对再确定记录行的颜色,而DBGrid3DrawColumnCell()要在获得记录时就改变了颜色.
// do anything you like
DrawColumnCell := ChangeFieldColorProcedure;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if dm.QueryClientinfo.RecNo mod 2=0 then
begin
DBGrid1.Canvas.Brush.Color:=rgb(248,251,234);
dbgrid1.Canvas.Font.Color:=clblack;
end
else begin
DBGrid1.Canvas.Brush.Color:=rgb(255,255,255);
dbgrid1.Canvas.Font.Color:=clblack;
end;
if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
begin
DBGrid1.Canvas.Brush.Color:=RGB(200,210,164);
DBGrid1.Canvas.FillRect(rect);
DBGrid1.Canvas.font.color:=clBlack;
end;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
这是奇偶行用不同颜色显示的代码,你改一下就行了!
begin
DBGrid1.OnDrawColumnCell := NIL;
end;procedure TForm1.ADOQuery1AfterOpen(DataSet: TDataSet);
begin
DBGrid1.OnDrawColumnCell := DBGrid1DrawColumnCell;
end;