我想实现DBGrid奇偶行颜色的显示,下面是我的代码,可是当我一按新增时,它所有行的颜色都变成了$00FFFFC2这种(也就是所有行都变成只有一种颜色了),可是一按取消后,它的奇偶行颜色又能恢复正常.
请问各位大吓们,该如何去做呀?if DBGrid1.DataSource.DataSet.RecNo mod 2 = 1 then//奇偶行
begin
DBGrid1.Canvas.Brush.Color := $00DDE8FF;
end
else
begin
DBGrid1.Canvas.Brush.Color := $00FFFFC2;
DBGrid1.Canvas.font.Color := $00FF0002;
end;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then//?取行
begin
DBGrid1.Canvas.Font.Color :=clRed;
DBGrid1.Canvas.Brush.Color :=clYellow;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
请问各位大吓们,该如何去做呀?if DBGrid1.DataSource.DataSet.RecNo mod 2 = 1 then//奇偶行
begin
DBGrid1.Canvas.Brush.Color := $00DDE8FF;
end
else
begin
DBGrid1.Canvas.Brush.Color := $00FFFFC2;
DBGrid1.Canvas.font.Color := $00FF0002;
end;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then//?取行
begin
DBGrid1.Canvas.Font.Color :=clRed;
DBGrid1.Canvas.Brush.Color :=clYellow;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if gdSelected in State then //选中行
begin
TDBGrid(sender).Canvas.Brush.Color := clInfoBk;
TDBGrid(sender).Canvas.Font.Color := clFuchsia;
end
else begin
if TDBGrid(sender).DataSource.DataSet.RecNo mod 2=0 then //偶数行
TDBGrid(sender).Canvas.Brush.Color := clSkyBlue
else
TDBGrid(sender).Canvas.Brush.Color := clInactiveCaptionText ;//奇数行
end;
TDBGrid(sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
不行吗