网上文摘 小说 Flash游戏 最近更新 下载排行 资源分类 下载指南
经典编程资源 精彩不容错过
设为首页
加入收藏
联系我们
当前位置:Delphi园地技巧文章控件使用 → 另外一种可以在在Delphi中随意控制DBGrid 每一行颜色的方法
另外一种可以在在Delphi中随意控制DBGrid 每一行颜色的方法
日期:2004年10月29日 作者: 人气: 查看:[大字体 中字体 小字体]
有个问题是在Delphi中使用DBGrid时,如何让DBGrid中每一行颜色按照用户自己的意愿控
制。最初看到这个问题时,我们以为非常非常简单,所以马上动手准备解决它。结果却发现不是
那么回事,传统方法根本不能发挥作用。在电脑面前一直坐到凌晨4点,不断地调试,幸运地是凭借平时积累的一点编程经验,终于找到了开门的匙钥。现将它充公,供大家享用。

   1、 数据表的建立
   在Delphi的工具菜单中选择Database desktop,在数据库DBDemos下建立一个名为
example.db的数据表。数据表的字段和内容如下:
             
Name  Age  Wage
张山  25  500
王武  57  1060
李市  30  520
刘牛  28  390

    2、创建基于TDBGrid的TColoredDBGrid组件
    在Delphi组件菜单中,选择New Component,在弹出对话框中作以下设置:

Ancestor Type  =   TDBGrid
Class  Name   =   TColoredDBGrid

    然后单击OK按钮,Delphi自动完成组件基本框架的定义。增添OnDRawColoredDBGrid事件并
使它出现在Object Inspector的Events中以便在应用程序中设定改变行颜色的条件。重载
DrawCell方法,只能自己绘制单元格。不能通过在OnDrawColumnCell来设置颜色,因为在
OnDrawColumnCell改变单元格的颜色会再次触发OnDrawColumnCell。
    下面就是所创建组件的源程序 。

    3、建立应用程序进行验证。
    在Delphi文件菜单中选择New建立新的应用程序工程Project1和主窗体Form1,设置Form1的
Caption属性为“控制DBGrid行颜色的示例”。在主窗体上添加Data Source、Table、Button和
ColoredDBGrid组件。设置各组件的属性如下:

Table1.Database=’DBDemos’
Table1.Tablename=’example.db’
Datasource1.Dataset=Table1
ColoredDBGrid1.Datasource=DataSource1
Button1.Caption=’退出’

    在ColoredDBGrid1的onDRawColoredDBGrid事件中输入下列代码,设定由Wage(工资)来决
定在ColoredDBGrid1各行的颜色。

procedure TForm1.ColoredDBGrid1 DRawColoredDBGrid (Sender: TObject;  Field: TField; var Color: TColor; var Font: TFont);
Var
    p : Integer;
begin
    p := Table1.FindField('wage').AsInteger;
  //取得当前记录的Wage字段的值。
    if (p < 500) then begin                
//程序将根据wage值设置各行的颜色。
      Color := clGreen;
      Font.Style := [fsItalic];      
//不仅可以改变颜色,还可以改变字体
    end;
    if(p >= 500) And (p < 800) then
      Color := clRed;
    if(p >=800) then begin
      Color := clMaroon;
      Font.Style := [fsBold];
    end;
end;
//用‘退出’按钮结束程序运行。
procedure TForm1.Button1Click(Sender: TObject);
begin
    Close;
end;

(出处:www.delphibbs.com)

相关文章:
·多表头的DBGridEH导出到Excel中
·DBGrid应用全书之定义表格颜色
·打印TDBGrid内容
·自制精美易用的DBGrid
·把DBGrid导出到Excel表格(支持多Sheet)
·隔行改变DBGrid网格颜色
·在Delphi的DBGrid中插入其他可视组件
·锁定DBGrid左边的列
·点击DBGrid的Title对查询结果排序
·去掉DbGrid的自动添加功能
 → 特别推荐
 → 热点TOP10
关于我们 | 广告服务 | 发布资源 | 联系站长 Copyright © 2002-2006 Delphi园地 All Rights Reserved