在类似于dbgrid的控件中,怎么样使数据单数行显示为红色,双数行显示为黑色?即第1.3.5.7.9.11...的记录显示为红色,2.4.6.8.10....的记录显示为黑色,是不是有专门的控件可以用?

解决方案 »

  1.   

    条件自己加了
    procedure TClientForm.MemberGridDrawColumnCell(
    Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn;
     State: TGridDrawState);
        var 
            oldcolor:tcolor;
            oldpm:tpenmode;begin
      if DM.ProjectTEAM_LEADER.Value = DM.Emp_ProjEMP_NO.Value then  {设定变色的行的条件}
         MemberGrid.Canvas.Font.Style := [fsBold];
         MemberGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
         {上面是演示程序的原内容,以下是增加部分}
      if DM.ProjectTEAM_LEADER.Value = DM.Emp_ProjEMP_NO.Value then {设定变色的行的条件}
        begin
           oldpm:= MemberGrid.Canvas.pen.mode;
           oldcolor:= MemberGrid.Canvas.Brush.color;
           MemberGrid.Canvas.Brush.color:=clyellow;
           MemberGrid.Canvas.pen.mode:=pmmask;
           MemberGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
           MemberGrid.Canvas.Brush.color:=oldcolor;
           MemberGrid.Canvas.pen.mode:=oldpm;
        end;
     
    end;