如何使TDbgrid或者TStrgrid的特殊记录显示为的特定“记录”
显示为红色????

解决方案 »

  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.   

    if gdSelected in state then
          SetBkColor(dbgrid1.canvas.handle,clgreen)
          else
          setbkcolor(dbgrid1.canvas.handle,clwhite);其中clwhite和clgreen是颜色,你用clyellow,clwindow之类的替换看看就知道了
      

  3.   

    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;
      

  4.   

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