您的位置:首页 > 编程语言 > Delphi

AdvStringGrid 使用技巧(2)(转载)

2016-12-19 15:42 393 查看
(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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息