网上文摘 最近更新 下载排行 资源分类 下载指南
经典编程资源 精彩不容错过
设为首页
加入收藏
联系我们
当前位置:Delphi园地技巧文章编程心得 → 为Delphi数据表格增加色彩
为Delphi数据表格增加色彩
日期:2004-12-21 作者:林华 人气: 查看:[大字体 中字体 小字体]
在DELPHI中经常用到网格控件(DBGrid)显示数据,网格控件只提供了每一行的颜色属性,但在实际应用中我们经常希望它按某一行某一项的取值不同显示不同的颜色,甚至在网格中的单位表格项中显示出图像等等,下面我们以一个简单的例子来告诉大家怎么做。

  比如我们要求如果春季有退书用红色表示,如果秋季有退书用黄色表示(图1)

  

  图1

  利用DBGrid自绘功能可以很容易地实现这样的要求。用户可以处理DBGrid的OnDrawColumnCell事件,在其中实现特殊的效果。要判断记录是否满足要求,可以使用DBGrid的DataLink属性获得数据,但DBGrid的DataLink属性属于保护成员,必须在TCustomDBGrid的子类中调用。

type 
TMyCustomDBGrid = class(TCustomDBGrid); 

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; 
DataCol: Integer; Column: TColumn; State: TGridDrawState); 
var
sCjts,sQjTs:String;
begin
    with TMyCustomerDBGrid(Sender) do
       begin
       Cjts:=DataLink.Fields[5].AsString;
       sQjts:=DataLink.Fields[9].AsString;
       if sCjts<>''  then       //春季退书数量>0的用红色显示
            Canvas.Brush.Color := clRed
       else
          if sQjts<>''  then      //秋季退书数量>0的用黄色显示
       Canvas.Brush.Color := clYellow
          else
             Canvas.Brush.Color:=clWhite;
      Canvas.Font.Color:=clBlack;      
      canvas.fillrect(rect);
      canvas.textout(rect.left+4,rect.top+4,Column.Field.AsString);
      end;
end;


  由此方法可以延伸出其它控件的多种修饰方法,比如可以按数据项值采用不同的颜色,可以按记录号显示不同的颜色。总之,灵活应用canvas、rect及bitmap等对象,可以将各种网格装饰得绚丽多彩。

(出处:http://developer.ccidnet.com/pub/article/c1079_a55420_p1.html)

相关文章:
·DBGrid应用全书之定义表格颜色
·把DBGrid导出到Excel表格(支持多Sheet)
·在dbgrid表格中如何设置按回车键相当于单click?
·材料验收日报表 日常管理表格
·材料收发日报表 日常管理表格
·材料进库日报表 日常管理表格
·材料仓库日报表 日常管理表格
·不合格产品管理表 日常管理表格
·制度维护多项给办单 日常管理表格
·DBGridEh(增强型表格组件)功能详解
 → 特别推荐
 → 热点TOP10
关于我们 | 广告服务 | 发布资源 | 联系站长 Copyright 2001-2012 Delphi园地 All Rights Reserved