• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi中DBGrid行列颜色设置

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
1.   纵向斑马线效果:实现网格的奇数列和偶数列分别以不同的颜色显示,以区别相邻的数据列。  
   
    file://在DbGrid的DrawColumnCell事件中编写如下代码:  
   
    Case   DataCol   Mod   2   =   0   of  
   
     True:   DbGrid1.Canvas.Brush.Color:=   clBlue;   file://偶数列用蓝色  
   
     False:   DbGrid1.Canvas.Brush.Color:=   clAqua;   file://奇数列用浅绿色  
   
    End;  
   
    DbGrid1.Canvas.Pen.Mode:=pmMask;  
   
    DbGrid1.DefaultDrawColumnCell   (Rect,   DataCol,   Column,   State);  
   
   
  2.   纵向斑马线,同时以红色突出显示当前单元格效果:以突出显示当前选中的字段。    
    file://将上述代码修改为:  
   
    Case   DataCol   Mod   2   =   0   of  
   
     True:   DbGrid1.Canvas.Brush.Color:=   clBlue;   file://偶数列用蓝色  
   
     False:   DbGrid1.Canvas.Brush.Color:=   clAqua;   file://奇数列用浅绿色  
   
    End;  
   
    If   ((State   =   [gdSelected])   or   (State=[gdSelected,gdFocused]))   then  
   
      If   Not   DbGrid1.SelectedRows.CurrentRowSelected   then  
   
        DbGrid1.Canvas.Brush.Color:=clRed;   file://当前选中单元格显示红色         DbGrid1.Canvas.Pen.Mode:=pmMask;  
   
        DbGrid1.DefaultDrawColumnCell   (Rect,   DataCol,   Column,   State);  
   
  上述两种方法突出了列的显示效果。  
   
    3.在数据网格中以红色突出显示当前选中的行。  
   
    设置DbGrid控件的Options属性中的dgRowSelect属性为真,Color属性为clAqua(背景色),   在DbGrid的DrawColumnCell事件中编写如下代码:  
   
    if   ((State   =   [gdSelected])   or   (State=[gdSelected,gdFocused]))   then  
   
     DbGrid1.Canvas.Brush.color:=clRed;   file://当前行以红色显示,其它行使用背景的浅绿色  
   
     DbGrid1.Canvas.pen.mode:=pmmask;  
   
     DbGrid1.DefaultDrawColumnCell   (Rect,   DataCol,   Column,   State);  
   
    4.行突显的斑马线效果:既突出当前行,又区分不同的列(字段)。  
   
    file://其它属性设置同3,将上述代码修改为:  
   
    if   ((State   =   [gdSelected])   or   (State=[gdSelected,gdFocused]))   then  
   
     begin  
   
      Case   DataCol   Mod   2   =   0   of  
   
       True   :   DbGrid1.Canvas.Brush.color:=clRed;   file://当前选中行的偶数列显示红色  
   
       False:   DbGrid1.Canvas.Brush.color:=clblue;   file://当前选中行的奇数列显示蓝色  
   
      end;  
   
     DbGrid1.Canvas.pen.mode:=pmmask;  
   
     DbGrid1.DefaultDrawColumnCell   (Rect,   DataCol,   Column,   State);  
   
    end;  
   
   
   
    5.横向斑马线,   同时以红色突显当前行效果。    
    file://其它属性设置同3,将上述代码修改为:  
   
    Case   Table1.RecNo   mod   2   =   0   of   file://根据数据集的记录号进行判断  
   
     True   :   DbGrid1.Canvas.Brush.color:=clAqua;   file://偶数行用浅绿色显示  
   
     False:   DbGrid1.Canvas.Brush.color:=clblue;   file://奇数行用蓝色表示  
   
    end;  
   
    if   ((State   =   [gdSelected])   or   (State=[gdSelected,gdFocused]))   then   file://选中行用红色显示  
   
     DbGrid1.Canvas.Brush.color:=clRed;  
   
     DbGrid1.Canvas.pen.mode:=pmMask;  
   
     DbGrid1.DefaultDrawColumnCell   (Rect,   DataCol,   Column,   State);  
   
    6.双向斑马线效果:即行间用不同色区分,同时,选中行以纵向斑马线效果区分不同的列。  
   
    file://其它属性设置同3,将上述代码修改为:  
   
    Case   Table1.RecNo   mod   2   =   0   of   file://根据数据集的记录号进行判断  
   
     True   :   DbGrid1.Canvas.Brush.color:=clAqua;   file://偶数行用浅绿色显示  
   
     False:   DbGrid1.Canvas.Brush.color:=   clblue;   file://奇数行用蓝色表示  
   
    end;  
   
    If   ((State   =   [gdSelected])   or   (State=[gdSelected,gdFocused]))   then  
   
    Case   DataCol   mod   2   =   0   of  
   
     True   :   DbGrid1.Canvas.Brush.color:=clRed;   file://当前选中行的偶数列用红色  
   
     False:   DbGrid1.Canvas.Brush.color:=   clGreen;   file://当前选中行的奇数列用绿色表示  
   
    end;  
   
    DbGrid1.Canvas.pen.mode:=pmMask;  
   
    DbGrid1.DefaultDrawColumnCell   (Rect,   DataCol,   Column,   State);  

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
可能 delphi7 下稳定的最后一版本 GDIPLUS发布时间:2022-07-18
下一篇:
MATLAB警告: 矩阵为奇异工作精度发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap