cxGrid 循环选择条目

Delphi DevExpress CxGrid 循环选择条目 整理出来的,直接复制粘贴即可使用

以下是从网络上复制粘帖到的,实践证明,利用以下代码进行获取选择行是错误的。

当我们利用 CxGrid进行排序后,它选的索引序号还是未排序前的,会导致选择错误、混乱的条目。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
   i,j: Integer ;
begin
  with cxgridview . Controller  do
   begin
    for i:= 0 to SelectedRowCount- 1 do
     begin
      j := cxgridview . DataController . GetSelectedRowIndex(I);
     //上文GetSelectedRowIndex不会随CxGrid排序而改变,导致造成严重后果
      //ShowMessage(VarToStr(cxgridview.DataController.GetValue(j, 0))); //循环显示第0列
     end ;
    end ;
   end ;
end ;

 

以下才是正确的:

recommand

CellClick事件中通过如下代码获取到真正的CxGrid序号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//获取单行选择的某列值,可写到CellClick事件中
with cxGrid1DBTableView1 . DataController . DataSet  do
begin
   //此处Current_Record获取到的字符串不会随CxGrid排序而改变
   Current_Record := FieldByName( 'CodeData' ).AsString; 
end ;
 
//获取多行选择的某列值,grdData为TableView的Name,RzMemo会显示出所有行的CodeData值
try
     with grdData . Controller  do
       begin
       for i:= 0 to SelectedRowCount- 1   do
         begin
           grdData . Controller . FocusedRow  := grdData . Controller . SelectedRows[i];
           RzMemo . Lines . add(grdData . DataController . DataSet . FieldByName( 'CodeData' ).AsString);
         end ;
       end ;
   except
   end ;

 

转载于:https://www.cnblogs.com/m0488/p/6609742.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值