对不起,我只有20分了
DBGrild控件打开数据表后,怎么着能把当前记录整行用红颜色显示! 
大侠帮忙!谢谢了 
详细一点,不要只告诉我用什么方法阿~我要看代码!

解决方案 »

  1.   

    BookMarkList := DBGrid.SelectedRows ;
      if BookMarkList.Find( DBGrid.DataSource.DataSet.Book, Index ) then
      begin
        DBGrid.Canvas.Brush.Color:=clHighlight;
        DBGrid.Canvas.Font.Color:=clRed;
      end
      

  2.   

    忘了一句
    var
      Index: Integer;
      BookMarkList: TBookList;在DBGRID的DrawColumnCell事件内加入
      

  3.   

    SORRY 没看清楚你的问题,以上我写的不对。这种方法只适合与多选(即dgMultiSelect:=true)
    完整代码是:
    procedure TForm1.DBGridDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var
      Index: Integer;
      BookMarkList: TBookList;
    begin
      BookMarkList := DBGrid.SelectedRows ;
      if BookMarkList.Find( DBGrid.DataSource.DataSet.Book, Index ) then
      begin
        DBGrid.Canvas.Brush.Color:=clRed;
        DBGrid.Canvas.Font.Color:=clWhite;
      end
      else
      begin
        DBGrid.Canvas.Brush.Color := clWhite;
        DBGrid.Canvas.Font.Color:=clBlack;
      end;
      DBGrid.DefaultDrawColumnCell(Rect,DataCol,Column,State);
    end;
    单选的我试过不行,有谁会吗?关注单选