zoukankan      html  css  js  c++  java
  • Delphi中DBGrid行列颜色设置

    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);  
  • 相关阅读:
    指针的相关概念
    Linux库函数
    计算机组成
    常用校验码及示例
    判断文件是否被占用的三种方法
    服务主机superFetch占用磁盘过多
    renameTo()判断文件是否被占用(判断大文件是否完成拷贝这个动作)
    xshell下mysql数据库只导出表结构不导出数据
    Java_判断文件是否写入完成
    Java_监听文件夹或者文件是否有变动
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/1604917.html
Copyright © 2011-2022 走看看