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. Drupal启动阶段之一:配置

    配置是Drupal启动过程中的第一个阶段,通过函数_drupal_bootstrap_configuration()实现: function _drupal_bootstrap_configurati ...

  2. B2C电子商务系统研发——产品媒体常见功能点

    产品媒体常见功能点 电商研发系列——产品媒体常见功能点 支持图片.视频和文档等媒体类型 产品图片对清晰度要求比极高,但又不能太大,所以图片一般是jpg格式. 视频一般是flv流媒体格式,如果是嵌入产品 ...

  3. 【Shiro】Apache Shiro架构之权限认证(Authorization)

    Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之集成web [Shiro]Apache Shir ...

  4. Linux命令-网络命令:setup

    setup 进入设置网络信息的界面 上图中选“网络配置”进入设置网络信息 上图中选“设备配置”进行配置IP地址,下图显示网卡信息 上图中,选择“eth0”回车进入设置eth0网卡信息界面 上图中选择“ ...

  5. Lintcode---二叉树的层次遍历(原型)

    给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 您在真实的面试中是否遇到过这个题? Yes 样例 给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \ 9 20 / \ 15 ...

  6. php里面的编码问题

    1 获取当前字符串的编码 $encode = mb_detect_encoding($str, array("ASCII",'UTF-8',"GB2312",& ...

  7. 记一下吧,又记不住啦。pipe

    currencydateuppercasejsonlimitTolowercaseasyncdecimalpercent ts == import { CurrencyPipe } from '@an ...

  8. 实时Web的发展历史

    传统的Web是基于HTTP的请求/响应模型的:客户端请求一个新页面,服务器将内容发送到客户端,客户端再请求另外一个页面时又要重新发送请求.后来有人提出了AJAX,AJAX使得页面的体验更加“动态”,可 ...

  9. 让 Vivado有Zybo Board的配置文件

    Zybo Board开发记录: 让 Vivado有Zybo Board的配置文件 由 judyzhong 于 星期三, 07/13/2016 - 10:41 发表 本文转载自:coldnew's bl ...

  10. spring-webservice.xml

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...