• Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值


    本文转自以下网址,感谢作者分享 https://blog.csdn.net/pcent/article/details/8169112 

    cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号
    cxGrid1DBTableView1.Controller.FocusedRow 当前行
    cxGrid1DBTableView1.Controller.FocusedColumn 当前列
    cxGrid1DBTableView1.Controller.FocusedColumnIndex 当前列号
    cxGrid1DBTableView1.Controller.EditingItem 当前编辑中的单元框
    cxGrid1DBTableView1.Controller.EditingController.Edit 当前的编辑框
    
    在编辑状态下可以这样取当前单元格的值:
    if cxGrid1DBTableView1.Controller.FocusedColumn.Editing then
    ShowMessage(cxGrid1DBTableView1.Controller.EditingController.Edit.EditingValue)
    else
    cxGrid1DBTableView1.DataController.GetValue(cxGrid1DBTableView1.DataController.FocusedRecordIndex,
    cxGrid1DBTableView1.Controller.FocusedItemIndex);
    
    非编辑状态下可以这样取得单元格内的值:
    OnCellClick事件代码: 
    procedure   TForm1.cxGrid1DBTableView1CellClick( 
        Sender:   TcxCustomGridTableView; 
        ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; 
        AShift: TShiftState;   var   AHandled: Boolean); 
    var 
        v : Variant; 
    begin 
        v := ACellViewInfo.Value; 
    end;
    
    
    
    取列值
    i := cxGrid1DBBandedTableView1.Controller.FocusedColumn.Index;
    cxGrid1DBBandedTableView1.DataController.GetValue(cxGrid1DBBandedTableView1.Controller.SelectedRows[0].RecordIndex,i);
    cxGrid1DBTableView1.DataController.Values[行,列]
    取得焦点
    cxGrid1DBTableView1.Columns[5].FocusWithSelection;
    cxGrid1DBTableView1.Columns[4].Focused:=True;
    得到当前点击的单元格的值
    uses   Clipbrd;
    
    OnCellClick事件代码:
    procedure   TForm1.cxGrid1DBTableView1CellClick(
        Sender:   TcxCustomGridTableView;
        ACellViewInfo:   TcxGridTableDataCellViewInfo;   AButton:   TMouseButton;
        AShift:   TShiftState;   var   AHandled:   Boolean);
    var
        v   :   Variant;
    begin
        v   :=     ACellViewInfo.Value;//值
        Clipboard.AsText     :=     vartostr(v);//保存到clipboard
    end;
    cxGrid的DBTableView的名称为dgtv1
    
    1. 返回选中的行数 gdtv1.DataController.GetSelectedCount;
    
    2. 返回选中行的索引: gdtv1.DataController.GetSelectedRowIndex(0) , 表示第一个选中行的索引
    
    3. 返回选中行的数据;
    
       var
       I, J:Integer;
    begin
       for I:=0 to gdtv1.DataController.GetSelectedCount - 1 do begin
         J := gdtv1.DataController.GetSelectedRowIndex(I);
         ShowMessage(VarToStr(gdtv1.DataController.GetValue(J, 0))); //选择中行的第列的值
       end;
    end;
    
    4. 获取cxGrid排序规则
    
    const
       OrderArray: array[soNone..soDescending] of string = ('None', 'ASC', 'DESC');
    var
       I: integer;
       S, OrderStr: string;
    begin
       for I := 0 to gdtv1.SortedItemCount - 1 do begin
         if S <> '' then
           S := S + ', ';
         OrderStr := OrderStr + gdtv1.SortedItems[I].DataBinding.DefaultCaption + ' ';
         OrderStr := OrderStr + OrderArray[TcxDataSortOrder(gdtv1.SortedItems[I].SortOrder)];
         S := S + OrderStr;
       end;
       ShowMessage('ORDER BY ' + S);
    
     
    
    5.获取多选的值
    
      for   i   :=   0   to   cxgrid1.SelectedRows.Count-1   do
    begin 
     cxgrid1.DataSource.DataSet.GotoBookmark(Pointer(cxgrid1.SelectedRows.Items[i])); //定位选中的字段
    
    end;
    
     
    
    6.//选择行的第1列的值
    
     for I:=0 to cxGrid1DBTableView1.DataController.GetSelectedCount - 1 do
     begin
       J := cxGrid1DBTableView1.DataController.GetSelectedRowIndex(I);
       ShowMessage(VarToStr(cxGrid1DBTableView1.DataController.GetValue(J, 0)));  
    
    end;
    
     
    
    7.获取所选行的值
    
      with cxGrid1DBTableView1.Controller do
      begin
    
       for i:=0 to SelectedRowCount-1   do
       begin
        SelectedRows[i].Focused:=True;
        ShowMessage(ADOQuery1.fieldbyname('mc').AsString);
       end;
    
    end;
    

      

  • 相关阅读:
    OpenWRT Mac 虚拟机PD 分享 for 软路由
    How to write u disk from img in mac os x
    linux find file > 100 M
    gojs for data flow
    正则表达式
    grep
    搜索引擎Query Rewrite
    Kafka replication
    cassandra写数据CommitLog
    Solr DIH JDBC 源码解析
  • 原文地址:https://www.cnblogs.com/sdlz/p/13712675.html
Copyright © 2020-2023  润新知