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

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

    

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

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

    

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

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

    2. 实现如上Excel表格展示效果

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组件可以自己再尝试使用即可。

相关文章
相关标签/搜索