zoukankan      html  css  js  c++  java
  • AdvStringGrid使用小结

    结合最近自己做的一些工作,用到了第三方控件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; 

  • 相关阅读:
    codeforces #586 ABC~D
    codeforces #585 div2 ABCD
    编译原理实验 NFA子集法构造DFA,DFA的识别 c++11实现
    codeforces #599 div2 ABCD
    codeforces #598 div3 ABCDF
    codeforces #587 div3 ABCDE
    codeforces educational round 73 div2 ABCD
    Mud Puddles ( bfs )
    2019牛客多校第十场B.Coffee Chicken(递归)
    2019牛客多校训练第七场A. String(暴力)
  • 原文地址:https://www.cnblogs.com/chencaiming/p/7268684.html
Copyright © 2011-2022 走看看