当符合一定的条件时,如何让DBGrid的某一行某一列显示成红色?望高手指教.

解决方案 »

  1.   

    100分啊,我要下面的代码可以改变单元格的字体、背景颜色procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if (DataCol = 1)and(ADOTable1.FieldByName('UserName').Value = 'Administrator') then
      begin
        DBGrid1.Canvas.Font.Color := clRed;
        DBGrid1.Canvas.Brush.Color := clLime;
      end;
      DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
    end;以上代码仅把第一列(从零列开始),第UserName='Administgrator'行的单元格的字体颜色改为红色,背景颜色改为亮绿色
      

  2.   

    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    begin
      DBGrid1.Canvas.Font.Color:=clred;
      DBGrid1.Canvas.Brush.Color:=clgray;  {//改变某个单元格的颜色
      if (Field.FullName='SIZE')and (Field.AsInteger=2) then
      begin
        DBGrid1.Canvas.TextRect(rect,rect.Left,rect.Top,Field.AsString);
      end;}  //改变某行的颜色,该行的NAME字段值=aaa
      if Field.DataSet.FieldByName('NAME').asString='aaa' then
        DBGrid1.Canvas.TextRect(Rect,rect.Left,rect.Top,Field.AsString);
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      //改变某个列的颜色
      DBGrid1.Columns[1].Color:=clgreen;
      DBGrid1.Columns[1].Font.color:=clred;
    end;
      

  3.   

    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    begin
      DBGrid1.Canvas.Font.Color:=clred;
      DBGrid1.Canvas.Brush.Color:=clgray;  {//改变某个单元格的颜色
      if (Field.FullName='SIZE')and (Field.AsInteger=2) then
      begin
        DBGrid1.Canvas.TextRect(rect,rect.Left,rect.Top,Field.AsString);
      end;}  //改变某行的颜色,该行的NAME字段值=aaa
      if Field.DataSet.FieldByName('NAME').asString='aaa' then
        DBGrid1.Canvas.TextRect(Rect,rect.Left,rect.Top,Field.AsString);
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      //改变某个列的颜色
      DBGrid1.Columns[1].Color:=clgreen;
      DBGrid1.Columns[1].Font.color:=clred;
    end;