首页 > 其他分享 >delphi TcxGrid网格组件:OnCustomDrawCell 自绘网格事件的应用

delphi TcxGrid网格组件:OnCustomDrawCell 自绘网格事件的应用

时间:2022-09-05 19:33:52浏览次数:64  
标签:Index ACanvas AViewInfo 自绘 TcxGrid 单元格 网格 事件

onCustomDrawCell事件分为两种:

 

 

 

一个是整个表格的事件,需要判断单元格所在的字段,符合了之后,才能进行下一步

  取得单元格所在字段的字段名:TcxGridColumn(AViewInfo.Item).DataBinding.FilterFieldName

  AViewInfo.Item 表示当前单元格所在的列

  AViewInfo.value 表示当前单元格的值

  补充:  

//以下两句代码在下图中是等价的,建议使用第二行
ACanvas.FillRect(AViewInfo.Bounds, oColor);
ACanvas.Brush.Color := clTeal;

 

  

 

 

一个是指定列的事件.不需要判断所在字段

    一.当某一列的数值符合某个条件时,填充颜色.(你还可以设置它字体的各种属性等)

    效果图:

 

 

 

二.ACanvas字体样式设置

  请参考下图格式书写代码.注意style的层级关系.比如

  设置字体大小: ACanvas.Font.Size:=12;

  设置字体为粗体: ACanvas.Font.Style.fsBold:=True;

  都是成年人,其他字体设置,请自己举一反三

 

 

 

 

 

三.当某个值符合特定条件时,改变整行记录的背景色

  首先.我们要明白,这不是单独某一个列的行为,所以我们不能使用指定列的事件,而应该使用全局事件

procedure TForm1.cxGrid1DBTableView1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
  //AViewInfo.GridRecord.Values 返回的是一整行记录的数组
  //你也可以使用arr[0]这样的方式返回,但是如果用户移动列位置的时候,程序就会出错
  //所以还是用index来定位比较稳  
//字段名.Index 返回字段所在的位置,比如下面的ID.Index,反回的是ID字段排在第几列 if AViewInfo.GridRecord.Values[ID.Index] = 5 then ACanvas.Brush.Color := clTeal; end;

效果如下:

 

标签:Index,ACanvas,AViewInfo,自绘,TcxGrid,单元格,网格,事件
From: https://www.cnblogs.com/yoooos/p/16659277.html

相关文章

  • vb.net DataGridViewCheckBoxColumn 自绘显示
     自定义自绘DataGridView扩展中发现CheckBox等控件显示错误,摸索了半天,总结一下片段:Case"DataGridViewCheckBoxCell"  NCell=NewDataGridViewCheckBoxC......
  • 网格布局GridLayout
     虽然线性布局既能在水平方向排列,也能在垂直方向排列,但它不支持多行多列的布局方式,只支持单行(水平排列)或单列(垂直排列)的布局方式。若要实现类似表格那样的多行多列形式,可......
  • 「NOI2016」网格 题解
    「NOI2016」网格题解前言感谢zqm学长提供调代码服务!本文中,所有没有特殊说明的连通都是指四连通,相邻都是指上下左右相邻。题目大意有一个$n\timesm$的网格,上......
  • 为Nginx服务添加ServiceEntry和workloadEntry对象,治理目标为网格外部服务的出向流量
    测试在网格内部访问网格外部服务我是开了三台云主机每台都安装下docker和docker-compose第一台[root@VM-0-12-centos~]#catDeploy-Nginx/docker-compose.ymlversio......
  • 用python画出网格图与路线图
      importmatplotlib.pyplotaspltimportnumpyasnpfrommatplotlib.pyplotimportMultipleLocatorimportcopyimportpylabimportrandomnetwork=[[0,......
  • 网格数据
    设有以下一维网格数据int[]gridData=newint[]{0,1,2,3,4,5,6,7,8};用以下方法存入二维数组,及访问对应元素introw=3;//行数intcol=3;//列......
  • rim seal 网格模型批处理流程
    用turbogrid画完动叶域和静叶域网格后导出def文件;将def文件导入到icem里,测出静叶域网格hub面与rimseal交界处的网格节点坐标(跨度为单流道的两个节点坐标就......
  • 12.Matplotlib grid()设置网格格式
    通过Matplotlibaxes对象提供的grid()方法可以开启或者关闭画布中的网格(即是否显示网格)以及网格的主/次刻度。除此之外,grid()函数还可以设置网格的颜色、线型以及线......