实战Delphi数据网格色彩特效

时间:2010-01-26 14:50:26  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:色彩配置角度,提出了一种解决办法。    以下为数据网格控件的6种特殊效果的实现方法,至于数据网格控件与数据集如何连接的方法从略。1. 纵向斑马线效果:实现网格的奇数列和偶数列分别以不同的颜色显示以区别相邻的数据列。在DbGrid的DrawColumnCell事件中编写如下代码:
  正文:

Delphi中的数据网格控件(TDbGrid)对于显示和编辑数据库中大量的数据起着十分重要的作用;然而,在使用数据网格控件的同时,也往往因为表格中大量的数据不易区分,而令操作者眼花缭乱。如何提高网格控件的易用性,克服它的此项不足呢?本文从改变数据网格的色彩配置角度,提出了一种解决办法。

    以下为数据网格控件的6种特殊效果的实现方法,至于数据网格控件与数据集如何连接的方法从略。

1. 纵向斑马线效果:实现网格的奇数列和偶数列分别以不同的颜色显示以区别相邻的数据列。

在DbGrid的DrawColumnCell事件中编写如下代码


Case DataCol Mod 2 = 0 of
True: DbGrid1.Canvas.Brush.Color:= clBlue; //偶数列用蓝色
False: DbGrid1.Canvas.Brush.Color:= clAqua; //奇数列用浅绿色
End;
DbGrid1.Canvas.Pen.Mode:=pmMask;
DbGrid1.DefaultDrawColumnCell (Rect
DataCol
Column
State);

2. 纵向斑马线,同时以红色突出显示当前单元格效果:以突出显示当前选中的字段。

将上述代码修改为:


Case DataCol Mod 2 = 0 of
True: DbGrid1.Canvas.Brush.Color:= clBlue; //偶数列用蓝色
False: DbGrid1.Canvas.Brush.Color:= clAqua; //奇数列用浅绿色
End;
If ((State = [gdSelected]) or (State=[gdSelectedgdFocused])) then
If Not DbGrid1.SelectedRows.CurrentRowSelected then
DbGrid1.Canvas.Brush.Color:=clRed; //当前选中单元格显示红色
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; //当前行以红色显示,其它行使用背景的浅绿色
DbGrid1.Canvas.pen.mode:=pmmask;
DbGrid1.DefaultDrawColumnCell (Rect
DataCol
Column
State);

4.行突显的斑马线效果:既突出当前行,又区分不同的列(字段)。

其它属性设置同3,将上述代码修改为:


if ((State = [gdSelected]) or (State=[gdSelectedgdFocused])) then
begin
  Case DataCol Mod 2 = 0 of
  True : DbGrid1.Canvas.Brush.color:=clRed; //当前选中行的偶数列显示红色
False: DbGrid1.Canvas.Brush.color:=clblue; //当前选中行的奇数列显示蓝色
end;
DbGrid1.Canvas.pen.mode:=pmmask;
DbGrid1.DefaultDrawColumnCell (Rect
DataCol
Column
State);
end;

5.横向斑马线, 同时以红色突显当前行效果。
其它属性设置同3,将上述代码修改为:


Case Table1.RecNo mod 2 = 0 of //根据数据集的记录号进行判断
True : DbGrid1.Canvas.Brush.color:=clAqua; //偶数行用浅绿色显示
False: DbGrid1.Canvas.Brush.color:=clblue; //奇数行用蓝色表示
end;
if ((State = [gdSelected]) or (State=[gdSelectedgdFocused])) then file://选中行用红色显示

"实战Delphi数据网格色彩特效"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/2010-01-26/12438.html


关键字:

关于《实战Delphi数据网格色彩特效》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td