鉴于本人首次设定cxGrid的CheckBox的时候费了很大劲,发现很多人都会碰到这个问题,现在总结一下,以供各位互相学习借鉴。
步骤如下(不分先后):
1、 cxGrid添加完自己所需的所有字段后,增加一个字段用来显示CheckBox勾选框,比如叫做Selected(至于Caption要不要设定,看 你自己喜欢是否想看到栏位名称了),那么tableview中此字段的DataBinding下面的FieldName就设为Selected,并注意 Options中的Editing要为True,还要设定Properties属性的ValueChecked属性和ValueUnchecked属性,这里比如分别设定为'Y','N'。
2、 设定cxGrid所连接的DataSource对应的ClientDataset,编辑ClientDataset,增加自己正常需要的所有字段,然后再 增加一个单独作为我们设定的用来显示勾选的字段,前面已经有名字了'Selected'(宽度设定大于2个字节都可以了,也就是为了保存之前设定的'Y' 或者'N',属性是WildString),需要注意的是:FieldType一定要选择fkInternalCalc,当然FieldName也是'Selected'。
3、在cxGrid的TableView的OnCellDblclick事件中写勾选与否的点击处理代码,比如如下例子:
procedure TfrmImmunIseplanAdd.cxGrid1DBTableView1CellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
inherited;
cdsGROWSORT.Edit ;
if cdsGROWSORT.FieldByName('Selected').AsString ='N' then
cdsGROWSORT.FieldByName('Selected').AsString:='Y'
else
cdsGROWSORT.FieldByName('Selected').AsString:='N';
end;
4、初始化勾选栏位,否则就是灰色的而且已经勾选了,如何初始化,基本上就是遍历ClientDataSet然后把'Selected'字段值赋值为'N',也就是非勾选状态。比如如下例子:
if (cdsGROWSORT.Active) and (cdsGROWSORT.RecordCount>0) then
begin
cdsGROWSORT.First;
while not cdsGROWSORT.Eof do
begin
cdsGROWSORT.Edit ;
cdsGROWSORT.FieldByName('Selected').AsString :='N';
cdsGROWSORT.Next;
end;
end;
注意:如果说cxGrid有很多数据记录要在窗口打开的时候就显示出来,那么你的ClientDataset的SQL语句不可以有'Selected'这个字段,也就是说这个字段不在你的数据查询记录中,不和数据库关联。
以上四个步骤不分先后,只要一一都这样设定一定可以实现想要的勾选框了。第一次写,呵呵,还真是费脑筋,就当作给自己一个加深印象的事情吧,呵呵。
分享到:
相关推荐
在Delphi开发环境中,`cxGrid`是一款强大的数据网格组件,广泛用于数据的显示和编辑。而`CheckBox`是常见的控件,用于实现用户界面中的复选功能。本篇文章将详细探讨`CheckBox`如何在`cxGrid`中应用,以及相关的编程...
`cxGrid`通常用于展示和编辑表格数据,而`checkbox`(复选框)则是其中一种常见的单元格元素,常用于表示二元状态(如真/假、开启/关闭等)。本文将深入探讨`checkbox`在`cxGrid`中的应用和相关知识点。 首先,`...
为cxGrid动态附加非绑定(无字段关联)的CheckBox列,以提供用户选择,并对操作者的选择进行求和输出;代码中牵涉到用语句对cxGrid过滤、过滤后的记录关联(定位)数据集数据。如有问题,欢迎到“中国软件研发联盟”...
在IT行业中,尤其是在开发Windows...总之,"CheckBox在cxGrid分组的应用"是一个涵盖了数据网格控件、分组、事件处理和用户交互等多个方面的话题。正确理解和使用这些知识点,可以显著提高应用程序的易用性和功能性。
"财务金额栏cxGrid"是专为Delphi开发者设计的一款控件,用于高效地处理和显示财务数据。cxGrid是一个功能强大的网格组件库,它提供了一种灵活的方式来呈现和编辑表格数据,特别适合于财务应用中的金额数据管理。 ...
在本话题中,我们将深入探讨如何使`cxGrid`的汇总栏紧贴最后一行数据,以优化用户界面的显示效果。 首先,我们需要理解`cxGrid`的基本结构。`cxGrid`由多个层次组成,包括View、Level、Column等。View是整个控件的...
本示例中的"用ini文件保存cxgrid显示风格的示例"是关于如何在运行时调整DevExpress的cxGrid控件的显示设置,并将这些设置持久化到ini文件中,以便于下次启动程序时能自动恢复用户自定义的视图样式。 cxGrid是...
总结,通过以上步骤,我们可以实现CXGrid动态增加列并进行属性绑定,包括与数据源字段的关联,以及设置列的各种属性。同时,对于下拉框功能,可以通过设置`TcxGridColumn.Properties`属性来实现。这使得CXGrid能够...
在Delphi编程环境中,CXGrid是一个非常流行的组件库,它为开发者提供了强大的数据网格控件,用于显示和编辑数据。这个组件提供了丰富的自定义选项,包括颜色设置,使其能够适应各种用户界面需求。本篇文章将深入探讨...
在Delphi编程环境中,`cxGrid`是一款强大的数据网格组件,它允许开发人员构建复杂的用户界面,用于显示和编辑数据库中的数据。`cxGrid`提供了丰富的功能,包括分组、排序、过滤、汇总等。本教程将重点讲解如何在`...
在“cxGrid多表头设置及应用”这个主题中,我们将探讨如何利用cxGrid创建多级表头,以及在这样的表头结构下如何填充和显示数据。首先,我们来看如何设置多表头。 1. **创建多级表头**: - 在设计阶段,可以通过...
CXGRID是一种常用的组件库,它提供了一种高效、灵活的方式来显示和操作数据。标题中的"CXGRID显示序号"指的是如何在CXGRID控件中添加并显示序列号。CXGRID通常用于数据库应用程序,它允许开发者以表格的形式展示数据...
总的来说,通过理解cxGrid的组件结构和属性设置,以及掌握cxGrid的多行表头配置方法,你可以轻松地创建出满足需求的复杂数据展示界面。在Delphi开发中,DevExpress控件如cxGrid的使用可以大大提高开发效率和用户体验...
该文档介绍如何使用Delphi第三方控件cxGrid实现颜色的不同显示方法,很实用。
1. **设置列类型**:首先,你需要为包含图片的列选择一个适合的列类型。CXGrid支持多种列类型,如`TcxImageColumn`,它专为显示图片设计。 2. **数据绑定**:确保你的CXGrid控件已经正确地与数据源(如数据库、数组...
在IT行业中,数据展示和处理是一项重要的任务,而cxGrid是一款流行的数据网格控件,常用于Delphi或C++ Builder等RAD Studio开发环境中。cxGrid提供了丰富的功能,包括数据显示、编辑、排序、过滤等,同时也支持...
在这里,我们将深入探讨`cxGrid`单元格颜色的设置以及一些基础使用方法。 首先,理解`cxGrid`的基本结构至关重要。`cxGrid`由多个组件构成,包括View(视图)、Level(层)和Column(列)。每个Column可以独立设置...
然而,当你提到“选中时不获取信息”,这可能是指在cxGrid的分组栏中,当用户选择一个或多个组时,无法正确地获取或显示与这些组相关的详细信息。 这个问题可能是由于以下原因造成的: 1. **事件处理不当**:...
在IT行业中,尤其是在软件开发和用户界面设计领域,cxGrid是一种常见的用于显示和编辑数据的控件,尤其在Delphi和C++Builder等RAD(快速应用程序开发)环境中广泛使用。cxGrid控件提供了灵活的数据视图,允许用户...
在这个场景中,"按钮列"指的是cxGrid中的一种特殊列类型,它允许在单元格中显示按钮,用户可以点击这些按钮来执行特定的操作。 cxGrid的按钮列可以用来实现以下功能: 1. 数据操作:例如,用户可以直接在表格内进行...