怎么实现在cxgrid中,点击某条纪录后,使此条纪录变成红色?
即可以理解为:看过了此条纪录后,此条纪录就成红色了。
请高手详细指教!

解决方案 »

  1.   

    TO: wxsan
    我已经设置标志位,看过后将标志位设置为y,关键是怎么将整条纪录都显示为红色。我只要cxgrid的解决方法。
      

  2.   

    TO huyongi:
       哈哈,太好了,抓紧搞好行的变色,就完美了。
      

  3.   

    Dev组件本身有色彩方面的控件可以配合使用的,在DEV Expreee面板上cxStyleRepository,通过这个控件
    可以设置样式,例字体,背景色,等等(双击控件可以进入,点击ADD即可进行设置)。上面设置好后,在CXGRID中的VIEW即可调用,VIEW中有个Styles属性,那么想如何设置色彩效果,只要cxStyleRepository中有定义,都可以调用,如楼主想要的当前行的只要设置Inactive或selection的样式为cxStyleRepository中定义的某一种即可。
      

  4.   

    我是这样解决了:
    procedure TForm1.cxGrid1DBTableView1CustomDrawCell(
      Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
      AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
    {参数 Sender: 你要实现特效的TableView;
     ACanvas: 画布, 这个参数比较重要, 就是用这个参数画出特效;
     AViewInfo: 自定义条件的来源; 从这个参数中获取单元格值;
     ADone: 设为真就不会Paint. }
    begin
    if  AViewInfo.GridRecord.Values[1]='y'then
        //AViewInfo.GridRecord.Values[1]:取得某一列中的单元格的数据。
        //(1是代表第二列,我的程序里面第二列是标志位,看过了就标志为y。 
        //ACanvas.Brush.Color := clred;//整条满足条件的纪录背景色改变
        ACanvas.Font.Color:=clred;//整条满足条件的纪录字体颜色改变
    end;
      

  5.   

    我是这样解决了问题:procedure TForm1.cxGrid1DBTableView1CustomDrawCell(
      Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
      AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
    {参数 Sender: 你要实现特效的TableView;
     ACanvas: 画布, 这个参数比较重要, 就是用这个参数画出特效;
     AViewInfo: 自定义条件的来源; 从这个参数中获取单元格值;
     ADone: 设为真就不会Paint. }
    begin
    if AViewInfo.GridRecord.Values[1]='y'then
      //AViewInfo.GridRecord.Values[1]:取得某一列中的单元格的数据。
      //(1是代表第二列,我的程序里面第二列是标志位,看过了就标志为y。  
      //ACanvas.Brush.Color := clred;//整条满足条件的纪录背景色改变
      ACanvas.Font.Color:=clred;//整条满足条件的纪录字体颜色改变
    end;
      

  6.   

    呵呵,我不是这样解决的。
    用5楼说的。
    你再加一个List记录下 OnChangeRecord (大概吧)里得到的数字。
    在 OnGetStyle (大概吧)里直接赋值那个 TcxStyle 即可。
    函数名字不具体。
    看看就知道了。