结合最近自己做的一些工作,用到了第三方控件AdvStringGrid,这里就常用的一些技巧做个小小的总结

(1)如何设置表格固定的列数,如下图所示:


这里固定的列数为3列,通过设置下面属性来改变固定的列数:

AdvStringGrid.FixedCols:=n;(n为要固定的列数值)
    (2)如何从AdvStringGrid中读取和向AdvStringGrid中导入值:

AdvStringGrid.Cells[j,i]:=str;(向其单元格赋值)这里需要注意的是,j为列数,i为行数。

(3)如何在运行界面中手动调整列宽与行宽,效果图如下所示:


这只如下属性即可以在运行界面中手动的调整行宽与列宽:

Options ->  goColsizing:=true 列宽

Options ->  goRowsizing:=true 行宽
    (4)如何使文字换行,并垂直居中,效果图如下:

把goRowsizing设置为true后,将WordWrap也设置为true;
    (5)如何使列宽根据单元格内容与列标题内容自动调整列宽

AdvStringGrid2.AutoSizeColumns(true,4);4代表前后留出的字节数。

(6)如何下AdvStringGrid中添加CheckBox,并判断其是否被选中的状态,效果图如下:

在窗体创建单元添加如下代码:

for i:=1 to AdvStringGrid3.rowcount-1  do
     begin
       AdvStringGrid3.AddCheckBox(2,i,false,false);
     end;

那么如何判断其是否被选取,并读取其中的值,参考代码如下:

var

flag:boolean;

for j:=1 to m do (m为表格的行数)
    begin
      AdvStringGrid3.GetCheckBoxState(2,j,flag);
      if flag then
      begin

…………

end;

(7)如何调整单元格总字体的颜色,比如对于一些异常数据希望显示为红色,效果图如下:


编辑代码如下:
     AdvStringGrid2.FontColors[21,j]:=clred;

(8)如何合并单元格:

这里我所采用的方法是,把所有数据采集完了以后再合并单元格,合并后的效果图如下:


合并的具体思路是这样的,先定义一个数组类型,把每列中值不一样的初始位置记录下来,然后再进行合并,参考代码如下:

i:=0;
    setlength(ipos,100);
    for j:=1 to m do
    begin
      if AdvStringGrid2.Cells[0,j]<>AdvStringGrid2.Cells[0,j+1] then
      begin
        ipos[i]:=j;
        i:=i+1;
      end;
    end;
    AdvStringGrid2.MergeCells(0,1,1,ipos[0]);
    AdvStringGrid2.MergeCells(23,1,1,ipos[0]);
    AdvStringGrid2.MergeCells(24,1,1,ipos[0]);
    if i>1 then
    begin
      for j:=0 to i-2 do
      begin
        AdvStringGrid2.MergeCells(0,ipos[j]+1,1,ipos[j+1]-ipos[j]);
        AdvStringGrid2.MergeCells(23,ipos[j]+1,1,ipos[j+1]-ipos[j]);
        AdvStringGrid2.MergeCells(24,ipos[j]+1,1,ipos[j+1]-ipos[j]);
      end;
    end;
    (9)如何清空表格

使用Clear过程

AdvStringGrid2.Clear;

(10)如何使单元格的所有内容居中显示

AdvStringGrid2.VAlignment:=vtacenter;

for j:=0 to m do//TabSheet2所有单元格显示居中
    begin
      for i:=0 to AdvStringGrid2.ColCount-1 do
      begin
        AdvStringGrid2.Alignments[i,j]:=TaCenter;
      end;
    end;

AdvStringGrid使用小结的更多相关文章

  1. 从零开始编写自己的C#框架(26)——小结

    一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...

  2. Python自然语言处理工具小结

    Python自然语言处理工具小结 作者:白宁超 2016年11月21日21:45:26 目录 [Python NLP]干货!详述Python NLTK下如何使用stanford NLP工具包(1) [ ...

  3. java单向加密算法小结(2)--MD5哈希算法

    上一篇文章整理了Base64算法的相关知识,严格来说,Base64只能算是一种编码方式而非加密算法,这一篇要说的MD5,其实也不算是加密算法,而是一种哈希算法,即将目标文本转化为固定长度,不可逆的字符 ...

  4. iOS--->微信支付小结

    iOS--->微信支付小结 说起支付,除了支付宝支付之外,微信支付也是我们三方支付中最重要的方式之一,承接上面总结的支付宝,接下来把微信支付也总结了一下 ***那么首先还是由公司去创建并申请使用 ...

  5. iOS 之UITextFiled/UITextView小结

    一:编辑被键盘遮挡的问题 参考自:http://blog.csdn.net/windkisshao/article/details/21398521 1.自定方法 ,用于移动视图 -(void)mov ...

  6. K近邻法(KNN)原理小结

    K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用.比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出 ...

  7. scikit-learn随机森林调参小结

    在Bagging与随机森林算法原理小结中,我们对随机森林(Random Forest, 以下简称RF)的原理做了总结.本文就从实践的角度对RF做一个总结.重点讲述scikit-learn中RF的调参注 ...

  8. Bagging与随机森林算法原理小结

    在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合. ...

  9. scikit-learn 梯度提升树(GBDT)调参小结

    在梯度提升树(GBDT)原理小结中,我们对GBDT的原理做了总结,本文我们就从scikit-learn里GBDT的类库使用方法作一个总结,主要会关注调参中的一些要点. 1. scikit-learn ...

随机推荐

  1. Windows下的VMware导入到Mac的VMware Function

    在windows下是以文件夹的形式存在的,但是在Mac下是以.vmwarevm为后缀的文件. 操作步骤: 把windows下的虚拟机整个文件夹拷贝到Mac,然后文件夹后面加上.vmwarevm. 然后 ...

  2. php实现函数可变参数列表

    使用func_get_args().func_num_args().func_get_arg() 可以构造一个可变参数列表的函数. 首先大致介绍以上三个函数. (1)array func_get_ar ...

  3. 将静态网页部署到git上访问

    1.将已有的项目放在github上 http://www.cnblogs.com/zqunor/p/6583182.html 2.出现错误解决方案 提交错误 http://blog.csdn.net/ ...

  4. Ambari集群里操作时典型权限问题put: `/home/bigdata/1.txt': No such file or directory的解决方案(图文详解)

    不多说,直接上干货! 问题详情 明明put该有的文件在,可是怎么提示的是文件找不到的错误呢? 我就纳闷了put: `/home/bigdata/1.txt': No such file or dire ...

  5. http协议与他的三次握手和四次挥手

    http:超文本传输协议,在客户端与服务端之间传输信息,客户端发送html,css给服务器,服务器返回源码给客户端: https:是一种更安全的传输协议,在协议上加了一层密码,不容易被黑客攻击,更加安 ...

  6. Flume初始

    一.Flume是什么 Flume是一个数据,日志收集的一个组件,可以用于对程序,nginx等日志的收集,而且非常简单,省时的做完收集的工作.Flume是一个分布式.可靠.和高可用的海量日志采集聚合和传 ...

  7. Java线程池及其底层源码实现分析

    1.相关类 Executors  ExecutorService   Callable   ThreadPool     Future 2.相关接口 Executor Executor接口的使用: p ...

  8. vue 实战问题-watch 数组或者对象

    1.普通的watch data() { return { frontPoints: 0 } }, watch: { frontPoints(newValue, oldValue) { console. ...

  9. 【很重要】优秀的常用的js库

    http://lodashjs.com/docs/   常用的各种工具库 sprintf  字符串格式 占位符替换等处理 devices.min.js

  10. 小白学习之Code First(一)

    1.根据自己的理解,Code First :通过实体类和相关配置生成对应的数据库,实现实体和数据库的映射关系,或通过实体类和相关配置与已经生成的实体与已经存在的数据库搭建映射关系 例: 实体类:Stu ...