现在有一个dbgrid 的option 下的gdrowselect等于true
当滚动dbgrid 的记录时,有一个兰色的默认的条,我怎样才能改变兰色为红色,

解决方案 »

  1.   

    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
        Field: TField; State: TGridDrawState); 
        begin
          if gdSelected in state then
          SetBkColor(dbgrid1.canvas.handle,clgreen)
          else
          setbkcolor(dbgrid1.canvas.handle,clwhite);
          dbgrid1.Canvas.TextRect(rect,0,0,field.AsString);
          dbgrid1.Canvas.Textout(rect.Left,rect.Top,field.AsString);
        end;
      

  2.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
     if (state=[gdSelected]) or (state=[gdSelected,gdFocused]) then
     begin
       if not form1.DBGrid1.SelectedRows.CurrentRowSelected then
         form1.DBGrid1.Canvas.Brush.Color:=clred;
     end;
     form1.DBGrid1.Canvas.Pen.Mode:=pmmask;
     form1.DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);
    end;