zoukankan      html  css  js  c++  java
  • CXGRID用法(取行、列值;定位选中某行等等)

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

    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;

  • 相关阅读:
    BNUOJ 12756 Social Holidaying(二分匹配)
    HDU 1114 Piggy-Bank(完全背包)
    HDU 2844 Coins (多重背包)
    HDU 2602 Bone Collector(01背包)
    HDU 1171 Big Event in HDU(01背包)
    HDU 2571 命运 (入门dp)
    HDU 1069 Monkey and Banana(最长递减子序列)
    HDU 1160 FatMouse's Speed (最长上升子序列)
    HDU 2594 KMP
    POJ 3783 Balls --扔鸡蛋问题 经典DP
  • 原文地址:https://www.cnblogs.com/railgunman/p/7109596.html
Copyright © 2011-2022 走看看