admin管理员组

文章数量:1530844

2024年7月23日发(作者:)

在DELPHI中经常用到网格控件(DBGrid)显示数据,网格控件只提供了每一行的颜

色属性,但在实际应用中我们经常希望它按某一行某一项的取值不同显示不同的颜色,甚

至在网格中的单位表格项中显示出图像等等,下面我们以一个简单的例子来告诉大家怎么

做。

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

利用DBGrid自绘功能可以很容易地实现这样的要求。用户可以处理DBGrid的

OnDrawColumnCell事件,在其中实现特殊的效果。要判 断记录是否满足要求,可以使

用DBGrid的DataLink属性获得数据,但DBGrid的DataLink属性属于保护成员,必须

在 TCustomDBGrid的子类中调用。

type

TMyCustomDBGrid = class(TCustomDBGrid);

procedure 1DrawColumnCell(Sender: TObject; const Rect: TRe

ct;

DataCol: Integer; Column: TColumn; State: TGridDrawState);

var

sCjts,sQjTs:String;

begin

with TMyCustomerDBGrid(Sender) do

begin

Cjts:=[5].AsString;

sQjts:=[9].AsString;

if sCjts<>‘‘ then //春季退书数量>0的用红色显示

:= clRed

else

if sQjts<>‘‘ then //秋季退书数量>0的用黄色显示

:= clYellow

else

:=clWhite;

:=clBlack;

本文标签: 显示退书网格要求属性