有没有办法让显示同一字段中不同数据的单元格用不同颜色显示? ( 积分: 30 )

  • 主题发起人 主题发起人 Eric_A
  • 开始时间 开始时间
E

Eric_A

Unregistered / Unconfirmed
GUEST, unregistred user!
比如:查询到同一字段中1..9,10个数字,从上至下的10个单元格分别用蓝白两种颜色交替,有办法吗?
DBGRID好像做不到是吧?有其它控件或办法能做到吗?


补充:对不起,是我表达的不清楚~
是上下两条记录不同结果时才改变颜色,并不一定是隔行变色~,有可能多行是一个颜色的。
还有,只改变当前列上单元格的颜色,不影响其它列~
其它就是对某一个单元格的操作,而不是对某一行或是某一列~
 
比如:查询到同一字段中1..9,10个数字,从上至下的10个单元格分别用蓝白两种颜色交替,有办法吗?
DBGRID好像做不到是吧?有其它控件或办法能做到吗?


补充:对不起,是我表达的不清楚~
是上下两条记录不同结果时才改变颜色,并不一定是隔行变色~,有可能多行是一个颜色的。
还有,只改变当前列上单元格的颜色,不影响其它列~
其它就是对某一个单元格的操作,而不是对某一行或是某一列~
 
DBGrid也能做到:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
case adoquery1.RecNo mod 2 of
0: DBGrid1.Canvas.Brush.Color := clBlue;
1: DBGrid1.Canvas.Brush.Color := clWhite;
end;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.TextOut(Rect.Left,Rect.Top,Column.Field.Text);
end;
 
楼上的帮你解决了呀
 
DBGRID就能作到。
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
case adoquery1.RecNo mod 2 of
0: DBGrid1.Canvas.Brush.Color := clBlue;
1: DBGrid1.Canvas.Brush.Color := clWhite;
end;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.TextOut(Rect.Left,Rect.Top,Column.Field.Text);
end;
 
对不起,是我表达的不清楚~
是上下两条记录不同结果时才改变颜色,并不一定是隔行变色~,有可能多行是一个颜色的。
还有,只改变当前列上单元格的颜色,不影响其它列~
 
强烈推荐cxgrid
 
后退
顶部