cxgrid   这两 个控件 能否 实现 鼠标 经过 每一条数据行 时  改变 整行 的 底颜色 ?????鼠标移走后变回原来的底颜色
如何实现??

解决方案 »

  1.   

    easy 有时间给你 下次给分也不要太小气
      

  2.   

    procedure TForm1.cxGrid1DBTableView1CustomDrawCell(
      Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
      AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);在这个事件中
    begin
    var  ATextToDraw, val,chk1,chk2: String;
      //  ARec: TRect;
      procedure SetTextToDraw;
      begin
        ATextToDraw := AViewInfo.GridRecord.DisplayTexts[AViewInfo.Item.Index];
      end;
    begin
      inherited;  SetTextToDraw;      val := VarAsType(AViewInfo.GridRecord.DisplayTexts[cxGrid1DBTableView1pur_no.Index], varString);//
          chk2 := VarAsType(AViewInfo.GridRecord.DisplayTexts[cxGrid1DBTableView1uqty.Index], varString);
          chk1 := VarAsType(AViewInfo.GridRecord.DisplayTexts[cxGrid1DBTableView1DBColumn5.Index], varString);      if val = '' then//判断某一列的值是否为空
            ACanvas.Canvas.Brush.Color := clInfoBk
          else
         if chk1<>chk2 then
              ACanvas.Canvas.Brush.Color := clmoneygreen;     if AViewInfo.Selected then
              ACanvas.Canvas.font.Color := clRed;    ACanvas.DrawText(ATextToDraw, AViewInfo.Bounds, 0);end;
    前面满足条件的获得后颜色不一样
    自己再改一下就可以了
      

  3.   

    reizedelphi  你又再这里乱说根本不行
      

  4.   

    给你一个思路:要用WM_HMOUSEMOVE或WM_MOUSELEVE 消息,
    再从这个消息中提取Mouse Piont, 再得到该点的cxGrid
    RowInfo, 再Draw.
      

  5.   

    那么复杂的grid ,不如不用!