procedure TfrmMain.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
aIndex:Integer;
aDBGrid:TDBGrid;
begin
if Sender is TDBGrid then
begin
aDBGrid:=TDBGrid(Sender);
if State=[] then
with aDBGrid do
begin
if Assigned(DataSource) and Assigned(DataSource.DataSet)
and DataSource.DataSet.Active
and not(SelectedRows.Find(DataSource.DataSet.Bookmark,aIndex)) then
begin
//aIndex:=(Rect.top div 17);//DataSource.DataSet.RecNo;
try
aIndex:=DataSource.DataSet.RecNo;
Except
end;
if odd(aIndex) then
aDBGrid.Canvas.Brush.Color:=clWindow //白色
else
aDBGrid.Canvas.Brush.Color:=clBtnFace;//灰色
aDBGrid.Canvas.Font.Color := clWindowText;
TDBgrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end
else
if ( Sender <> Screen.ActiveControl ) then
with aDBGrid.Canvas Do
begin
Brush.Color := clBtnFace;
Font.Color := clWindowText;
TDBgrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end;
end;