cxGrid的MultiSelect为True后,在cxGrid选中多条记录后,如何得到被选中的记录?

解决方案 »

  1.   

    procedure TForm1.btnSelectValueClick(Sender: TObject);
    var
      I:Integer;
    begin
      for I:=0 to tvcxgd1DBTableView1.DataController.GetSelectedCount do begin
        ShowMessage(VarToStr(tvcxgd1DBTableView1.DataController.GetValue(I,0))); 
        //得到选中记录的第一个字段的值
      end;
    end;
      

  2.   

    我用你的方法试了下,

      showmessage(inttostr(cxGrid1DBTableView1.DataController.GetSelectedCount ));
    可以下确得出选中了多少条的记录;
    但是用以下方法
    procedure TFrmCKDCX.Button2Click(Sender: TObject);
    var
      i:integer;
    begin
      for i:=0 to cxGrid1DBTableView1.DataController.GetSelectedCount-1 do
      begin
        showmessage(cxGrid1DBTableView1.DataController.GetValue(i,12));
      end;
    end;
    无论你是如何多选记录的,它总是从第一条记录开始遍历的,比如说,我选中的记录是第5,8,9条
    但它显示的数据是第1,2,3条记录cxGrid1DBTableView1的Multiselect 设为true了,请问还要设置其它的吗?
      

  3.   

    不好意思, 上面的代码有误下面才正确, 如果搞定请早些结贴谢procedure TForm1.btnSelectValueClick(Sender: TObject);
    var
      I, J:Integer;
    begin
      for I:=0 to tvcxgd1DBTableView1.DataController.GetSelectedCount-1 do begin
        J:=tvcxgd1DBTableView1.DataController.GetSelectedRowIndex(I);
        ShowMessage(VarToStr(tvcxgd1DBTableView1.DataController.GetValue(J,0)));
      end;
    end;
      

  4.   

    to  cncharles(旺仔) :
    谢谢