如何将查到的工号为1001 的记录在Dbrid1 中用红色标识出该记录来(指的该条记录为红色显示),谢谢!

解决方案 »

  1.   

    DBGrid1.Canvas.Brush.Color := clRed;
    DBGrid1.DefaultDrawColumnCell(Rect,datacol,column,state);
      

  2.   

    可以在dbrid的drawcolumncell事件中将查询结果的颜色改变
    DBGrid1.Canvas.Brush.Color := clRed;
    DBGrid1.DefaultDrawColumnCell(Rect,datacol,column,state);
      

  3.   

    那如果我想将这条记录在整个数据表里即在dbgrid1中永远显示为红色呢?那又怎么设置,这个才是我的最终目的,谢谢谢。。
      

  4.   

    1 用DBGrid显示数据 当字段FieldA的值>100 的话该行字体显示红色,否则为白色.
    procedure Tform1.DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
    if DBgrid1.DataSource.DataSet.FieldByName('FieldA').AsFloat >100 then
      begin
        DBGrid1.Canvas.Font.Color:=clRed;
        DBGrid1.Canvas.Brush.Color:=RGB(221, 255, 255);
      end
    else
      begin
        DBGrid1.Canvas.Font.Color:=clWhite;
        DBGrid1.Canvas.Brush.Color:=RGB(255, 255, 255);
      end;
      DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
    end;
      

  5.   

    这样也可以:
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var
    field : TField;
    dataset : TDataSet;
    m : string;
    begin
     dataset := DBGrid1.DataSource.DataSet ;
    field := dataset.FieldByName('gongzi');
    := field.asString;
    if m='1001' then DBGrid1.canvas.font.color := clRed;
    DBGrid1.DefaultDrawColumnCell(rect,DataCol,column,state);
    end;
      

  6.   

    hei,谢谢你们的帮助,虽然用datasource1,table1,dbgrid1能够实现:
    我想将某条记录在整个数据表里即在dbgrid1中永远显示为红色,但我用datasource1,adotable1,dbgrid1就不行了呢?我同样是用你的代码方法呀,
    为什么不行呢?急,在线等,谢谢啦
      

  7.   

    我想将某条记录在整个数据表里即在dbgrid1中永远显示为红色,但我用datasource1,adotable1,dbgrid1就不行了呢?我同样是用你的代码方法呀,
    为什么不行呢?急,在线等,谢谢啦// 这就麻烦点了 关键是你如何确定是哪条记录 
    if(ADOQuery->Fields->Field[0]->Value=='xxxx')and(ADOQuery->Fields->Field[0]->Value=='YY') then
    begin
          DBGrid1.Canvas.Font.Color:=clRed;
        DBGrid1.Canvas.Brush.Color:=RGB(221, 255, 255);
    end;