TMS开发组件包-TAdvStringGrid表格控件

最近项目涉及一些复杂表格显示的实现,尝试使用Dev Express的cxGrid控件多次还是没法实现想要的效果,后来发现,TMS开发组件包的TAdvStringGrid可以实现效果。这里举例来说明一下,例如,需要实现如下效果:

如上所示是一个3行4列的表格,其中,第一行的1、2列合并,第2行的2、3列合并,下面使用TAdvStringGrid来实现,步骤如下:

  • 新建一个VCL窗口项目,布局界面

    添加TAdvStringGrid控件,默认它是一个5列10行的空白表格,这里需要自定义数据,这里修改它的ColCount和RowCount属性为0,但是,默认还是一个1列1行的空白表格,这里可以不用理会。

    按钮”显示数据”点击后,就显示如上效果的表格。

  • 实现如上Excel表格展示效果

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    procedure TForm1.btn1Click(Sender: TObject);
    var
    count: Integer;
    begin
    //
    AdvStringGrid1.ColCount := 0;
    AdvStringGrid1.RowCount := 0;
    // 初始化行列 (3行4列)
    for count := 0 to 1 do // 因为第一行是表格头,因此就2行,从0开始数,所以为2-1=1,行与列一样的道理。
    begin
    AdvStringGrid1.AddRow;
    end;
    for count := 0 to 2 do
    begin
    AdvStringGrid1.AddColumn;
    end;

    AdvStringGrid1.MergeCells(0, 0, 2, 1);
    AdvStringGrid1.Cells[0, 0] := '1';
    AdvStringGrid1.Cells[2, 0] := '2';
    AdvStringGrid1.Cells[3, 0] := '3';

    AdvStringGrid1.MergeCells(1, 1, 2, 1);
    AdvStringGrid1.Cells[0, 1] := '4';
    AdvStringGrid1.Cells[1, 1] := '5';
    AdvStringGrid1.Cells[3, 1] := '6';

    AdvStringGrid1.Cells[0, 2] := '7';
    AdvStringGrid1.Cells[1, 2] := '8';
    AdvStringGrid1.Cells[2, 2] := '9';
    AdvStringGrid1.Cells[3, 2] := '10';
    end;

    运行如下:

    效果实现,其他的TMS组件可以自己再尝试使用即可。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 linjk121@163.com.