由于要计算平均分我用TStringGrid显示数据库中学生成绩表的内容,如何让成绩在60分以下的记录显示为红色。

解决方案 »

  1.   

    用DBgrid,不要用stringgridprocedure TFrmnptfplr.DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
      if QueFAPIAOYPMCBM.Value>60 then
       dbgrid1.Canvas.brush.Color:=$00B0B0B0
       else DBGrid1.Canvas.brush.Color:= $00DDDDDD;
       DBGrid1.Canvas.FillRect(rect);
       DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);
      
    end;
      

  2.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
      if fieldbyname('分数').asfloat>60 then
       dbgrid1.Canvas.brush.Color:=$00B0B0B0
       else DBGrid1.Canvas.brush.Color:= $00DDDDDD;
       DBGrid1.Canvas.FillRect(rect);
       DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);
      
    end;
      

  3.   

    响应DrawCell,在其中作判断并更换颜色。