RichView Table 表格

95 篇文章 0 订阅
24 篇文章 2 订阅

RichView Table 表格  

       Table表格是一种特殊的RichView项,如同图像、控件、断线一样组成ITEM,且独立构成文档的段落。Table表格是一个ITEM,但它要复杂得多,因为它们在每个单元格中包含RichView文档。此外,表内部可以包含其他表,因此RichView文档可以嵌套在任何深度上。

    一、Table表格
    1、类型
  TRVTableItemInfo = class (TRVFullLineItemInfo)
  TRVTableItemInfo 是表示 TRichView 文档中表格的类。 不是一个组件。

    2、表在文档中,占用只是ITEM一个位置。

    3、表的基本单位是Cell,Cell内嵌入RTf文档,又可以嵌入Table,以及图像等元素。
    二、表的创建
    1、表的列ColCount,由数据的项目决定,列的宽度创建时,以页的有效宽度平均分配。 

    2、表的行RowCount,显示数据的多少决定。

    3、表的位置
    Table表格总是占据整行,它的左边或右边都不可能有任何项(如果需要这种效果,可以使用嵌套表),包括列表标记。
    表格的段落样式定义了它的位置:对齐、左对齐、右对齐(忽略FirstIndent)。段落样式可以定义表格和背景的边框。所有这些属性都应用于表本身,而不是其单元格。

    4、表的创建通常,一次性插入指定行数和列数,Table的细节,随后再细化。

    (1)创建Table

uses RVTable;
...
var table:TRVTableItemInfo;
...
table := TRVTableItemInfo.CreateEx(RowCount, ColumnCount, RVData);

    RowCount是创建表行数  
    ColumnCount是创建表列数,在表中表数是不可变的,所有行中列数据是相等的。
    RVData是一个您希望插入表的富视图文档。通常这是richview.RVData或richviewedit.RVData。

    (2)将Table以ITEM插入文档

     function InsertItem(const Name: TRVUnicodeString;  Item: TCustomRVItemInfo): Boolean;

  //将表格添加到文档中
  RichViewEdit1.InsertItem('', Table);

     注意:插入Table后,在文档中就是一个ITEM,由Table构成的ITEM,自成一个段落。

     如果文档是只读的,或者由于文本保护而无法插入,则此方法可能返回False。在这种情况下,InsertItem方法释放了表。

     三、表的组件Cell单元
     表的行、列交叉点,就是Cell单元。
    1、Cell属性

    2、Cell内部可以嵌套Table表格

    3、Cell的显示,取决于Cell内的文档样式

    4、Cell的访问
    Cell的行由0至RowCount-1;
    Cell的列由0至ColCount-1;
    通常地列值,读取访问:

with table.Cells[r,c] do
begin
  Clear;
  AddNL('hello!', 0, 0);
end;

   也可使用行列循环访问Cell: 

for Row := 0 to Table.RowCount - 1 do
  for Col := 0 to Table.ColCount - 1 do
      Table.Cells[Row, Col].AddFmt('%d,%d', [Row, Col], 0, 0);

    
    四、创建表的实例

procedure TForm1.Button1Click(Sender: TObject);
var
  Table: TRVTableItemInfo;
  Row, Col: Integer;
begin
  //创建5行4列的表格
  Table := TRVTableItemInfo.CreateEx(5, 4, RichViewEdit1.RVData);

  //设置表格边框和背景色
  Table.Color := clNone;
  Table.BorderStyle := rvtbColor;
  Table.CellBorderStyle := rvtbColor;
  Table.BorderWidth := 1;
  Table.CellBorderWidth := 1;

  //添加表格数据
  for Row := 0 to Table.RowCount - 1 do
    for Col := 0 to Table.ColCount - 1 do
    begin
      Table.Cells[Row, Col].BestWidth := 60;
      Table.Cells[Row, Col].BestHeight := 20;
      Table.Cells[Row, Col].Color := clCream;
      Table.Cells[Row, Col].Clear;
      Table.Cells[Row, Col].AddFmt('%d,%d', [Row, Col], 0, 0);
    end;

  //合并单元格(从第1行第2列开始,合并2列3行)
  Table.MergeCells(0, 1, 2, 3, True);
  //合并后单元格包括[0,1][0,2][1,1][1,2][2,1][2,2]
  Table.Cells[0, 1].Clear;
  Table.Cells[0, 1].AddNL('单元格索引[0,1]', 0, 0);
  Table.Cells[0, 1].AddFmt('RowSpan = %d', [Table.Cells[0, 1].RowSpan], 0, 0);
  Table.Cells[0, 1].AddFmt('ColSpan = %d', [Table.Cells[0, 1].ColSpan], 0, 0);
  //将表格添加到文档中
  RichViewEdit1.InsertItem('', Table);
end;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值