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;

以下才是正确的:

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;

cxGrid 循环选择条目的更多相关文章

  1. C语言第五讲,语句 顺序循环选择.

    C语言第五讲,语句 顺序循环选择. 一丶语句的简明了解 我们知道,在编写C语言程序的时候,代码是顺序执行的. 从上往下执行. 但是我们可以控制流程的. 在控制之前,我们要先熟悉什么是语句. 相比大家学 ...

  2. shell脚本-循环选择语句

    shell脚本-循环选择语句 过程式编程语言: 顺序执行 选择执行 循环执行 注:条件中的变量,可以在执行语句中使用,不用在加上"$". if语句 根据命令的退出状态来执行命令 单 ...

  3. Python学习笔记(Ⅱ)——循环/选择/函数

    一.循环结构 python中提供了for循环和while循环两种操作,没有do……while语句. 1.for循环: 与其他语言中for循环的常见的写法如for (int i=0;i<10;i+ ...

  4. linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例 --转载

    http://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html nux shell有一套自己的流程控制语句,其中包括条件语句(if),循环 ...

  5. [Python笔记][第三章Python选择与循环]

    1月28日学习 Python选择与循环 选择结构 多分枝选择结构 if 表达式 1: 语句块 1 elif 表达式 2: 语句块 2 elif 表达式 3: 语句块 3 ... else : 语句块 ...

  6. [转]linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例

    原文链接:http://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html linux shell有一套自己的流程控制语句,其中包括条件语句 ...

  7. Android自己定义实现循环滚轮控件WheelView

    首先呈上效果图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...

  8. Python排序算法——选择排序

    有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10787340.html 一.选择排序(Sele ...

  9. Java和Python分别实现直接选择排序

    1.基本思想 将指定排序位置与其他数组元素分别对比,如果满足条件就进行交换.个人理解其实就是每趟循环从数组里选一个最大的值(最小的值)放到数组最后(最前). 2.算法实现 这里以每趟循环从数组中选择一 ...

随机推荐

  1. 准备你的Adempiere开发环境(1)- 编译

    1. 安装JDK 1.6. 2. 安装Eclipse IDE for Java EE Developers. 3. 导入adempire-360lts: 4. 关闭adempiere-360lts的B ...

  2. iOS-UICollectionView快速构造/拖拽重排/轮播实现

    代码地址如下:http://www.demodashi.com/demo/11366.html 目录 UICollectionView的定义 UICollectionView快速构建GridView网 ...

  3. 关于ie,火狐,谷歌浏览器滚动条的隐藏以及自定义样式

    最近做了一个项目,要求各个浏览器统一滚动条的样式,不显示滚动条,但是不影响鼠标的滑动事件. 查了很多资料,ie和谷歌都是可以自定义滚动条样式的,但是ie只能改变颜色,并不能修改宽度,圆角之类的.谷歌就 ...

  4. android 屏幕适配原则

    屏幕大小 1.不同的layout Android手 机屏幕大小不一,有480x320,640x360,800x480.怎样才能让App自动适应不同的屏幕呢? 其实很简单,只需要在res目录下创建不同的 ...

  5. Android数据格式解析对象JSON用法

    1.JSON概念: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. JSON可以将 ...

  6. sklearn 随机森林方法

    Notes The default values for the parameters controlling the size of the trees (e.g. max_depth, min_s ...

  7. 问题解决: Pandas and scikit-learn: KeyError: […] not in index

    https://stackoverflow.com/questions/51091132/pandas-and-scikit-learn-keyerror-not-in-index The probl ...

  8. python安装scrapy小问题总结

    AttributeError: 'module' object has no attribute 'OP_NO_TLSv1_1'

  9. Shell 基础笔记

    1-22-shell脚本的基础 本节所讲内容:      shell 基本语法      变量 第1章 什么是SHELL?.. 2 1.1 shell编程.. 3 第2章 shell变量及运用.. ...

  10. [svc]salt-webui

    CherryPy https://pypi.python.org/packages/source/C/CherryPy/CherryPy-3.2.4.tar.gz#md5=e2c8455e15c39c ...