网站首页 工具软件 操作系统 办公软件 网页制作 PHP教程 script脚本专栏 photoshop教程 其他精品教程
我发布的文章 - 教程搜索 - 交流论坛 - 帮助中心 - 网站首页 网络工具 - 常用工具 - 媒体工具 - 系统工具 - 实用工具 NT/2003 - Win Xp - Win2000 - DOS/Win9x - IE/注册表 - Linux - 苹 果 Office - Word - Excel - PowerPoint - 输入法 - 邮件处理 Flash - Dreamweaver - Fireworks - FrontPage - HTMLCSS 基础文章 - PHP函数 - PHP技巧 - 数据库相关 - 高级应用 - PHP安装 - 转载精华 - 常见问题 综 合 类 - 状 态 栏 - 游 戏 类 - 页面背景 - 页面特效 - 页面导航 - 文本操作 - 文本特效 - 图形特效 - 鼠标特效 - 时间日期 - 密 码 类 文字特效 - 按钮与图标 - 色彩运用 - 滤镜魔法 - 综合实例 XML教程 - DELPHI基础教程 - VB教程
首页 -> 其他精品教程 -> DELPHI基础教程

TOP

为Delphi数据表格增加色彩
文章内容
相关信息
用户评论
文章内容


在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等对象,可以将各种网格装饰得绚丽多彩。



相关信息
为Delphi数据表格增加色彩
发布者:mmcbbs
浏览量:119
发布日期:2005-04-10 11:05:38
所属专题:
用户评论
称  呼:
内  容:

广告位

广告招租,欢迎抢订

热门信息

·Delphi客户服务器应用开发..
·SQL编程(一)
·数据浏览部件的应用及编程..
·数据浏览部件的应用及编程..
·SQL编程(二)
·数据访问部件的应用及编程..
·在线播放器DIY
·Delphi客户服务器应用开发..

推荐信息