DBGrid 选中行变色 当DBGrid失去焦点或者刷新数据集后恢复原色(意思是:第一行不要变色,要不操作者以为第一行被选中)解决方法

DBGrid 选中行变色 当DBGrid失去焦点或者刷新数据集后恢复原色(意思是:第一行不要变色,要不操作者以为第一行被选中)
当我将DBGrid设置为隔行变色,并且选中行字体变色,但问题来了,我不选中时,第一行字体也被变色了,谁能帮我解决这个问题?
(当我不加选中行字体变色代码时,默认是没有问题的,就是字体颜色为白色,与我设置的背景色没有反差,比较难以辨识),贴上代码,让高手帮我看下:

procedure TForm1.DBGrid6DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  IF (Sender as TDBGrid).DataSource.DataSet.RecNo mod 2=0 then
  (Sender as TDBGrid).canvas.Brush.color :=$00FFC1FF
  else
  (Sender as TDBGrid).canvas.brush.color :=$00F8E2CF;
  (Sender as TDBGrid).DefaultDrawColumnCell(Rect,Datacol,Column,State);
  IF (State = [gdSelected]) or (State=[gdSelected,gdFocused]) then //设置选中行的状态显示
  begin
  (Sender as TDBGrid).Canvas.Font.color:=clblue; //当前行字体用蓝色显示
  (Sender as TDBGrid).DefaultDrawColumnCell (Rect,DataCol,Column,State);
  end;
end;

------解决方案--------------------
没有gdSelected,但是被聚焦了gdFocused

可以先判断gdFocused,然后判断gdSelected试试
------解决方案--------------------

------解决方案--------------------
建议跟踪测试一下吧,也可以参数有问题的