ondrawcolumncell(...)//在此事件中加入
begin
if 条件 then
dbgrid.canvas.font.color:=clred;
dbgrid.defaultdrawcolumncell(rect,datacol,column,state);
end;
begin
if 条件 then
dbgrid.canvas.font.color:=clred;
dbgrid.defaultdrawcolumncell(rect,datacol,column,state);
end;
DBGrid1DrawDataCell 中添加:
procedure TF_xz_ffgz.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
Tem_text:STring;
TEm_rect:Trect;
tem_str:string;
begin
Tem_str:=column.field.displaytext;
if Tem_str=条件 then begin
dbgrid1.canvas.brush.color:=clred;
end;
Tem_rect.Left:=Rect.Left-1;
Tem_Rect.Top:=Rect.Top-1;
Tem_Rect.bottom:=rect.Bottom+1;
Tem_Rect.Right:=rect.Right+1;
if Gdselected in state then begin
Dbgrid1.Canvas.Brush.Color:=clhighlight;
Dbgrid1.Canvas.Font.Color:=Clhighlighttext;
end;
Dbgrid1.Canvas.Textrect(rect,rect.left,rect.top,Tem_text);
dbgrid1.canvas.drawfocusrect(Tem_rect);
end;
其中的所有颜色仅做参考,可以实际添加,若不行,请直接和我联系,保证你可以得到所有的想要的类型的表格
if (TDBGrid(Sender).DataSource.DataSet.FieldByName('商品单价').AsFloat < 0 { 行的条件 })
and (DataCol = 1 { 列的条件 }) then TDBGrid(Sender).Canvas.Brush.Color := clRed { 想要的颜色 }
else TDBGrid(Sender).Canvas.Brush.Color := TDBGrid(Sender).Color; { 原来的颜色 }
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
//我已经调试成功了!
if (TDBGrid(Sender).DataSource.DataSet.FieldByName('商品单价').AsFloat < 0 { 行的条件 })
and (DataCol = 1 { 列的条件 }) then TDBGrid(Sender).Canvas.Brush.Color := clRed { 想要的颜色 }
else TDBGrid(Sender).Canvas.Brush.Color := TDBGrid(Sender).Color; { 原来的颜色 }
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;