举个例子
在DBGridEh中显示如下数据:姓名   成绩
人员一   50
人员二     60
人员三    100要求把成绩小于60的显示为红色,大于60小于100的显示为绿色,100的显示为蓝色
只把成绩一列根据条件改变字体颜色,不要改变姓名那一列的字段颜色
请问如何实现?麻烦说的详细一点,谢谢大家了

解决方案 »

  1.   

    在OnDrawColumnCell里写:  if DBGridEh1.Fields[1].AsFloat< 60 then
      begin
        DBGridEh1.Canvas.Font.Color := clred;
        DBGridEh1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end
      else if DBGridEh1.Fields[1].AsFloat< 100 then
      begin
        DBGridEh1.Canvas.Font.Color := clGreen;
        DBGridEh1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end
      else
      begin
        DBGridEh1.Canvas.Font.Color := clblue;
        DBGridEh1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end;
      

  2.   

    koma2973() 
    DBGridEh1.Canvas.Font.Color := clGreen;这样写会让一整行的字体都变色的,我现在只想改变成绩那一列的字体颜色,姓名那一列不改变颜色
      

  3.   

    DataCol 是列的序号,之前判断一下就行了。例如“成绩”是第二列,那么前面加上:
    if DataCol <> 2 then Exit;
    这样就只有“成绩”这列会改变颜色了。