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;
Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值的更多相关文章
- Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值
Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值 cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号 cxGrid1DB ...
- poi获取合并单元格内的第一行第一列的值
当读取如图所示的excel时,显示为第1行 第1列 的内容是:合并单元格 其它在合并单元格区域内的单元格不显示 示例代码如下: import java.io.FileInputStream; impo ...
- Delphi richedit获取选中文字
function TForm1.GetSendText(RichEdit: TExRichEdit): string;var MsgListInfo: TStrings; i, m, n: i ...
- 获取wpf datagrid当前被编辑单元格的内容
原文 获取wpf datagrid当前被编辑单元格的内容 确认修改单元个的值, 使用到datagrid的两个事件 开始编辑事件 BeginningEdit="dataGrid_Beginni ...
- 翻译:MariaDB字符集和排序规则
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- WPF DataGrid 获取选中 一行 或者 多行
WPF中DataGrid使用时,需要将其SelectedItem转换成DataRowView进行操作 然而SelectedItem 与SelectedItems DataGrid的SelectionU ...
- FineReport——获取控件值和单元格值
设置单元格的值(填报预览): //contentPane.setCellValue(1,0,"abc");//参数面板给单元格赋实际值,即可填报 contentPane.curLG ...
- LeetCode.1030-曼哈顿距离排序矩阵单元格(Matrix Cells in Distance Order)
这是小川的第384次更新,第412篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第246题(顺位题号是1030).我们给出一个矩阵,其中R行和C列具有整数坐标(r,c)的 ...
- NPOI扩展--判断指定单元格是否为合并单元格和输出该单元格的行列跨度(维度)
因工作需要用到跨合并单元格获取数据,所以写了个NPOI扩展类. 主要方法如下: 1.判断指定行/列索引(单元格)是否为合并单元格. 2.获取指定列索引的实际含有数据的单元格. 3.返回指定行/列索引的 ...
- excel小技巧-用于测试用例的编号栏:“获取当前单元格的上一格的值+1”=INDIRECT(ADDRESS(ROW()-1,COLUMN()))+1
编写用例的时候使用,经常修改用例的时候会需要增加.删除.修改条目,如果用下拉更新数值的方式会很麻烦. 1.使用ctrl下拉,增删移动用例的时候,需要每次都去拉,万一列表比较长,会很麻烦 2.使用ROW ...
随机推荐
- 使用技巧 | 红米 Redmi Note 12 Turbo优化记录(去广告等)
原文链接:https://engapi.com/article/7569 原文也是我写的. 我的红米Redmi note8 pro 6+128已有些卡顿,遂在K70推出之际下单了Redmi Note ...
- npm安装包出现Invalid Version,npm list报错UNMET DEPENDENCY报错
执行 npm install 出现报错 2097 verbose stack TypeError: Invalid Version: 2097 verbose stack at new SemVer ...
- 读书笔记-C#8.0本质论-07
19. 平台互相操作性和不安全代码 19.1 在托管平台调用非托管代码--P/Invoke模式 CLI通过P/Invoke功能对非托管DLL所导出的函数执行API调用.和类的所有普通方法一样,必须在类 ...
- MongoDB学习笔记之 第1章 MongoDB的安装
MongoDB学习笔记之 第1章 MongoDB的安装 MongoDB学习笔记之 第2章 MongoDB的增删改查 MongoDB学习笔记之 第3章 MongoDB的Java驱动 MongoDB学习笔 ...
- 文本转换利器之Pandoc
Pandoc 简介 如果你需要在不同的文件格式之间相互转换,多半听说或使用过文档转换的瑞士军刀--Pandoc.事实上,不仅人类知道 Pandoc,最近很火的人工智能 ChatGPT 也知道「将 Ma ...
- PHP之项目环境变量设置
需求 在PHP开发中为了区分线上生产环境还是本地开发环境, 如果我们能通过判断$_SERVER['RUNTIME_ENVIROMENT']为 'DEV'还是'PRO'来区分该多好, 可惜的是$_SER ...
- 某开源ERP最新版SQL与RCE的审计过程
文章首发于 https://forum.butian.net/share/134 前言 代码路径 https://gitee.com/jishenghua/JSH_ERP 软件版本 华夏ERP_v2. ...
- 问题解决:windows主机开机不插屏幕不能自动进入桌面
操作系统一般都有这种设定,不论是windows还是Linux系统,那就是主机开机不插屏幕不能自动进入桌面操作系统一般都有这种设定,不论是windows还是Linux系统,那就是主机开机不插屏幕不能自动 ...
- 使用IntersectionObserver 实现懒加载 && 记录一个懒加载失效的原因
先说说我实现懒加载失效的一个原因: 是图片没有写高度 猜想是没有给图片高度,所以底层没法进行计算 容器是否出现在视图中 IntersectionObservers作用 提供了一种异步观察目标元素与其祖 ...
- js 进制转换:十六进制转十进制、十进制转十六进制、十六进制转ASCII码、
因为近期做小程序,蓝牙连接硬件,需要根据module bus通信协议解析数据,用到了很多标题的算法转换,借此总结一下. 十六进制 转 十进制 function hex2dec(hex) { var l ...