结合最近自己做的一些工作,用到了第三方控件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. Python对象引用和del删除引用

    1.首先介绍下python的对象引用 1)Python中不存在传值调用,一切传递的都是对象引用,也可以认为是传址调用.即Python不允许程序员选择采用传值或传引用.Python参数传递采用的是“传对 ...

  2. PHP操作sqlserver乱码解决

    将捕获的参数编码转换为GB2312即可 function ($string){ returen iconv("UFT-8","GB2312//IGNORE",$ ...

  3. lambda modern C++

    Lambda expressions (since C++11) Syntax   [ captures ] <tparams>(optional)(c++20) ( params ) s ...

  4. 【es6】正则扩展

  5. 几个用Python实现的简单算法

    一.算法题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 程序源 ...

  6. 数据库~Mysql派生表注意的几点~关于百万数据的慢查询问题

    基础概念 派生表是从SELECT语句返回的虚拟表.派生表类似于临时表,但是在SELECT语句中使用派生表比临时表简单得多,因为它不需要创建临时表的步骤. 术语:*派生表*和子查询通常可互换使用.当SE ...

  7. vue引入bootstrap和fontawesome

    npm install jquery npm install bootstrap npm install popper.js. import $ from 'jquery' import 'boots ...

  8. No result defined for action and result input

    今天在编程的时候,我遇到了No result defined for action and result input的错误,这个错误想必大家都有遇到过吧,我今天发了很长时间弄这个错误,我以为我的Act ...

  9. PTA (Advanced Level) 1010 Radix

    Radix Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? ...

  10. 端口扫描工具nmap

    nmap 使用介绍 nmap是目前为止最广为使用的国外端口扫描工具之一.我们可以从[url]http://www.insecure.org/[/url]进行下载,可以很容易的安装到Windows和un ...