Delphi DbGrid上色问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 01:11:46
我想做一个这样的功能

就是DbGrid的某一个栏位有相同的值时

就给这几行上色

序号 名字 年龄
1 xx 20
2 xxx 20
3 xxc 23

打个比方就是上面的形式,年龄有相同的,就给他们上颜色

还有 可不可以只给一个上颜色,而不是一行
可不可以只给一格上颜色,而不是一行 写错了

DbGrid的OnDrawColumnCell事件
如你现在有一个ADOTable1,一个DbGrid1,假如你数据库里面的列名分别是(序号,名字,年龄),你要将年龄为23的格填充背景色为黑色,字体颜色改为白色,代码如下:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if adoTable1.FieldByName('年龄').AsString = '23' then
begin
DBGrid1.Canvas.Brush.Color:=clBlack;
dbgrid1.Canvas.Font.Color := clWhite;
end;
if DataCol = 3 then
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

cb120520025 都答了 没的答了。