Delphi中为DBGrid控件添加色彩.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Delphi中为DBGrid控件添加色彩

2005-08-0809:13作者:小刀轻舞出处:天极网责任编辑:方舟

在微软软件帝国的摇旗呐喊声中,各种开发工具纷纷推陈出新,VB.net和VC#.net等微软的嫡系在短时间内拥有了一大批FANS。能在开发工具领域和微软一决高下的Borland公司也不甘示弱把Delphi“打扮”的漂漂亮亮的,让我们这些坚定的D迷依旧信心满满,坚守这块阵地。一些对Pascal语法情有独钟或对VCL爱慕非凡的新生力量也加入了我们阵营之中,新加入的同志大多以开发数据库类的软件做为初始的一步,这样对“数据感知”控件了解成为了必须,这其中最经常用到的要属DBGrid,我们就来谈谈如何增强DBGrid的功能。虽然原生的DBGrid功能已经非常强大,但在实际开发工作还是会碰到捉襟见肘的时候,例如将不同类型的数据用不同的颜色加以区分这个功能就非常有用,这一功能有助于加强软件与用户的交互,要知道用户可是上帝喔,让上帝满意是最重要的事情啊!

添加不同颜色到TDBGrid组件中将会增强组件的显示外观和区别数据库中不同内容的行或列。

TDBGrid组件是一种非常棒的用来显示数据内容的组件,本文的重点将用来解释---如何在TDBGrid中改变特定行或列或单元格的颜色。

准备阶段:

本文假设你已经知道如何将一个TDBGrid与数据库相联接,最容易的方法是使用“DatabaseFormWizard”,将TDBGrid与DBDemo(Delphi自带数据库中的employee.db相联接,选择除Except之外的所有字段。

给TDBGrid上颜色为列上色

第一种是最容易的一类上色,最直接的让你的用户看到,为TDBGrid中指定的某一列上色。我们采用的方法是通过TDBGrid的TColumns属性来完成。步骤如下:

用鼠标选择Form上的TDBGrid组件,在ObjectInspector中双击TDBGrid的Columns属性打开Columns编辑窗口。(想了解更多内容查阅Delphi帮助中的“Columnseditor:creatingpersistentcolumns”主题。)

下面你所要做的就是指定你需要改变颜色的那一行或几行的背景颜色,如果你要改变字体颜色,就将

Font属性集中的Color属性修改一下。

图1

就是这么简单,只要轻点几下鼠标就可以了,这样修改之后的TDBGrid就不再是呆板的白色背景了。为行上色

第1种如果你想要为TDBGrid中所选的某一格或某些格指定颜色,而且你不想使用dgRowSelect选项,因为你想让TDBGrid可以直接在TDBGrid单元格中编辑数据,你应该使用TDBGrid的OnDrawColumnCell事件。

下面我们用到的技巧可以动态改变TDBGrid中的单元格文本的颜色。

代码如下:

procedure

procedureTForm1.DBGrid1DrawColumnCell(Sender:TObject;constRect:TRect;DataCol:Integer;Column:TColumn;State:TGridDrawState);

begin

ifTable1.FieldByName(’Salary’).AsCurrency36000nthe

//指定所需改变颜色行的条件表达式DBGrid1.Canvas.Font.Color:=clMaroon;

//指定颜色为clMaroon

DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

上述代码执行的功能是:把薪水超过3万6千元的员工(employee)记录字体颜色用栗色(Maroon)标出来。

图2

第2种如何动态改变TDBGrid中行的颜色,代码如下:

procedure

procedureTForm1.DBGrid1DrawColumnCell(Sender:TObject;constRect:TRect;DataCol:Integer;Column:TColumn;State:TGridDrawState);

begin

ifTable1.FieldByName(’Salar.Ay’sC)urrency36000thenDBGrid1.Canvas.Brush.Color:=clWhite;DBGrid1.DefaultDrawColumnCell(Rect,DataCol,C

文档评论(0)

dqy118 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体上海海滋实业有限公司
IP属地上海
统一社会信用代码/组织机构代码
91310115MA7DL1JF2N

1亿VIP精品文档

相关文档