adoquery1有一个字段:name,值有:A、B、C...
DBgrid已按name字段排序,现在要使所有行中按name值不同行颜色不同(交错),比如所有name值为A的行为灰色,name值为B的行为白色,所有name值为C的行又为灰色,按错进行改变 DBgrid背景色。
DBgrid已按name字段排序,现在要使所有行中按name值不同行颜色不同(交错),比如所有name值为A的行为灰色,name值为B的行为白色,所有name值为C的行又为灰色,按错进行改变 DBgrid背景色。
1 A
2 A
3 B
4 C
5 C
7 C
8 D
9 D
.....
LastName: String;
LastColor: TColor;//如果是第一行,初始化。if DBGrid1.DataSource.DataSet.RecNo = 0 then
begin
LastName := Field.AsString;
LastColor := clGreen;
end;if Field.AsString <> LastName then
if lastColor = clGreen then
LastColor := clRed
else
LastColor := clGreen;
DBGrid1.Canvas.Brush.Color := LastColor;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.Font.Color := clBlack;
DBGrid1.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Field.AsString);
LastName := Field.AsString;
Begin
Dbgrid.Canvas.Brush.Color := 颜色(如:clInfoBk) ;
Dbgrid.DefaultDrawColumnCell( Rect, DataCol, Column, [gdFixed,gdFocused,gdSelected] );
End ;
if Trim(Field.DataSet.FieldByName('字段名').AsString) = 'A' then
begin
ABrush.Color := $00E5E5E5;
end;