CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  数据库及相关技术

DBGrid中如何根据记录值,显示不同的颜色!

楼主dclfoxman(foxmandcl)2003-12-02 20:48:47 在 C++ Builder / 数据库及相关技术 提问

我在DBGrid中要根据一个字段记录值,如果大于0,为红色.小于0为黑色..如何设呀. 问题点数:0、回复次数:6Top

1 楼CCLIS(www.cclis.com)回复于 2003-12-02 21:05:40 得分 0

使用OnDrawCell  
  DBGridDrawCell(...)  
  {  
      TCanvas   *Can   =   DBGrid->Canvas;  
      if(DataSet->FieldByName("a")->AsInteger   >   0)  
          Can->Font->Color   =   clRed;  
      else  
      if(DataSet->FieldByName("a")->AsInteger   <   0)  
          Can->Font->Color   =   clBlack;  
      else  
        //   这里处理等于0的情况  
   
      Can->TextOut(Rect.Left,   Rect.Top,   IntToStr(DataSet->FieldByName("a")->AsInteger))  
  }Top

2 楼fatwave(风中的雨)回复于 2003-12-03 11:07:03 得分 0

if(Column->Index   ==   4   &&   EleDBGridEh->DataSource->DataSet->Fields->Fields[4]->AsFloat   >   MaxDL   )  
          {  
              EleDBGridEh->Canvas->Brush->Color   =   TColor(9671679);  
          }  
          if(Column->Index   ==   5   &&   EleDBGridEh->DataSource->DataSet->Fields->Fields[5]->AsFloat   >   MaxDL   )  
          {  
              EleDBGridEh->Canvas->Brush->Color   =   TColor(9671679);  
          }  
          if(Column->Index   ==   6   &&   EleDBGridEh->DataSource->DataSet->Fields->Fields[6]->AsFloat   >   MaxDL   )  
          {  
              EleDBGridEh->Canvas->Brush->Color   =   TColor(9671679);  
          }  
          if(Column->Index   ==   14   &&   EleDBGridEh->DataSource->DataSet->Fields->Fields[14]->AsFloat   >   MaxYggl   )//第14列大于某值  
          {  
              EleDBGridEh->Canvas->Brush->Color   =   TColor(9671679);  
          }  
   
      if(State.Contains(gdSelected))//被选择时!  
      {  
              EleDBGridEh->Canvas->Brush->Color   =   (TColor)RGB(100,100,200);  
              EleDBGridEh->Canvas->Font->Color     =   clWhite;  
      }  
       
      EleDBGridEh->DefaultDrawColumnCell(Rect,DataCol,Column,State);  
   
  楼上说的是改字体颜色,我这是改底色,大同小异!  
  Top

3 楼darkinger(Ganger)回复于 2003-12-03 11:11:05 得分 0

唉呀,来晚了,不过接点分,哈哈Top

4 楼dclfoxman(foxmandcl)回复于 2003-12-03 19:59:59 得分 0

void   __fastcall   TFS_Fllow::DBViewCustomDrawCell(  
              TcxCustomGridTableView   *Sender,   TcxCanvas   *ACanvas,  
              TcxGridTableDataCellViewInfo   *AViewInfo,   bool   &ADone)  
  {  
   
  }  
  可我用不起来呀..因为我用的cxGrid控件呀.Top

5 楼constantine(飘遥的安吉儿)回复于 2003-12-03 20:56:10 得分 0

cxGrid是什么来的?没有看过,如果是DBGrid,上面就可以了。不满足就论坛里搜索,很多Top

6 楼laox5111(哥哥)回复于 2003-12-04 10:58:45 得分 0

cxGridDevExpress的Grid套件。我只用过老版本的。现在的版本功能越来越强大,但是也越来越复杂。所有已经不用了。  
  在cxGrid通过设置cxGridDBTableView跟DataSource相关联来显示数据,因此可以在cxGridDBTableView的CustomDrawCell事件里来控制。方法可以用上面所说的那些。Top

相关问题

  • 如何更改选中DBGrid记录的高亮颜色? >>>>
  • 选中DBGRID记录,变颜色问题,谢谢!
  • 如何设置dbgrid里面当前记录的颜色啊?
  • DBGrid控件中记录传值问题
  • 在DBGRID里怎么以颜色区分不同的记录 高分
  • 在DBGRID里怎么以不同的背景颜色区分记录,高分
  • 在DBGrid中如何给不同的记录标上不同的颜色?
  • 在DBGrid中改变一个字段值后让此记录的颜色显示为红色,以表示此记录修改了,有谁能告诉我怎样解决?(不用专门的控件)
  • DBGrid中当前记录的Company列的值 该如何表示?
  • 如何读入DBGrid中新增记录的输入值?

关键词

  • eledbgrideh
  • asfloat
  • maxdl
  • tcolor
  • dbgrid
  • canvas
  • asinteger
  • brush
  • cxgrid
  • fieldbyname

得分解答快速导航

  • 帖主:dclfoxman

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo