这两天在csdn里转转,发现很多人问关于DBGRID或DBGRIDEH的分类显示的问题,今天闲下来,就这个问题聊两句。实际上对于DBGRID的自画,delphi 提供了两个事件供我们使用,
一个是画行的:
OnDrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
另一个是画列的:
OnDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
这就给我们很大的方便。对于DBGRID的分类颜色显示,明显应该用第一个事件。那么怎么才能分类按颜色显示呢,实际上听起来很难,但实际上很简单。
首先定义一个类型为TColor的变长数组,然后在数据集的AfterOpen事件中,将数组的长度定义为数据集的记录个数。然后根据你的分类计算出数组的每一个元素的颜色值,数组的每一个元素应该和数据集的一条记录相对应。最后,在你的OnDrawColumnC...[ 查看全文 ]