• 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;

     

  • 相关阅读:
    SVN日常使用
    zabbix安装
    shell日常脚本(centos6)
    mysql故障记录
    PHP商品秒杀功能实现思路分析
    Redis
    PHP 实现实时通信一般有两种方式
    FTP DNS SMTP POP3 HTTP HTTPS DHCP DNS SNMP Telnet 端口号
    TCP/UDP/HTTP的区别和联系
    TCP 和 UDP 的区别
  • 原文地址:https://www.cnblogs.com/karkash/p/6609742.html
Copyright © 2020-2023  润新知