dev控件学习笔记之----CxGrid
本人总结的DEV学习:希望对大家有所帮助。
一、是否显示分组工具:
二、表格左边记录信息显示的宽度:
三、设置表格行高:
四、表头文件的水平和垂直设置:多个设置用按住SHIFT后进行多选,然后就可以设置了。
五、表头加图片设置:
六、表头样式:可以对整个列进行配置,也可以对单个列进行配置。如果点击某列标题,则styles 是对该列进行配置,如果选择的是表格,则是对整个表格列的样式进行配置。
七、列的设置:即可以对表格所有列设置,也可以对某一列进行设置。
1、列可否过滤 2、列可否分组 3、列可否隐藏 4、列可否隐藏分组
5、列可否移动 6、列可否排序
八、数据是否允许【增、删、改】,也可以仅对某个列进行修改。
九、自应用列宽
for i := 0 to adoquery.FieldCount - 1 do
begin
//自适应列宽
cxGrid1DBTableView1.Columns[i].ApplyBestFit();
end;
十、在网格最后一行的最后一格回车自动增加一条记录,并跳到新记录的第一格
设置cxGrid1DBTableView1的
OptionsBehavior.FocusFirsCellOnNewRecord:=true;
OptionsBehavior.GoToNextCellOnEnter:=True;
OptionsBehavior.FocusCellOnCycle:=True;
十一、.网格中通过Tab跳转,设置
cxGrid1DBTableView1.OptionsBehavior.FocusCellOnTab:=True;
十二、表格增、删、改、插入属性
//列是否允许新增 不允许
cxGrid1DBTableView1.OptionsData.Appending:=false;
//列是否允许删除 不允许
cxGrid1DBTableView1.OptionsData.Deleting:=false;
//列是否允许插入 不允许
cxGrid1DBTableView1.OptionsData.Inserting:=false;
//列是否允许修改 不允许
cxGrid1DBTableView1.OptionsData.Editing:=false;
十三、隔行颜色:
在TcxGridDBTableView下的styles下的
Content 下的color 代表默认的内容
contenteven下的color 代表偶数行
contentodd 下的color 代表奇数行
Selection 下的color 代表选中行
十四、表格最前列加序号
1.设置cxgrid的属性, OptionsView.Indicator = True
2.OnCustomDrawIndicatorCell事件
var
FValue: string;
FBounds: TRect;
begin
if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
begin
FValue :=IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index+1);
FBounds := AViewInfo.Bounds;
ACanvas.FillRect(FBounds);
ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1);
InflateRect(FBounds, -1, -1);
ACanvas.Font.Color := clBlack;
ACanvas.Brush.Style := bsClear;
ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop);
ADone := True;
end;
end;
以前代码加放后,存在一个部题,就是那个序号列,比较窄,没有办法加宽。控件设置了不起作用。
十五、点击表格的指示器程序
procedure TForm1.cxGrid1DBTableView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
hitTest:TcxCustomGridHitTest;
begin
hitTest:=(sender as TcxGridSite).GridView.ViewInfo.GetHitTest(x,y);
if hitTest.HitTestCode= htCell then
ShowMessage('点击了表格');
if hitTest.HitTestCode = htIndicatorHeader then
ShowMessage('点击了表格最左上角的单元格指示器');
if hitTest.HitTestCode = htRowIndicator then
ShowMessage('点击了行的指标器');
if hitTest.HitTestCode = htIndicator then
ShowMessage('点击了最左下角的单元指示器');
end;
十六、增加气泡提示:在电脑的最右下角提示信息
实例:接上面的实例进行测试。
制做方法:
1、窗体上增加控件:
2、写代码实现:一行代码即可实现 。
dxAlertWindowManager1.Show('提示','点击了表格');
十七、添加所有数据源中的列到CXgrid表格中
cxGrid1DBTableView1.DataController.CreateAllItems();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了