分享

AdvStringGrid使用小结

 dwbboy 2018-06-12

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

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

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

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

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

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

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

     Options ->  goColsizing:=true 列宽

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

             AdvStringGrid使用小结

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

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

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

            AdvStringGrid使用小结

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

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

            AdvStringGrid使用小结
编辑代码如下:
     AdvStringGrid2.FontColors[21,j]:=clred;

    (8)如何合并单元格:

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

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

    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;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多