TRichView表格边框

介绍

delphi使用RichView控件 表格边框_html+css

说明

边框( BorderWidthCellBorderWidth)宽度设置为 0(默认值)可以隐藏。

单元格属性VisibleBorders可以隐藏某些单元格边框的某些边。

当在 TRichViewEdit 中插入带有不可见边框的表格时,边框显示为灰色虚线。

属性

表格边框宽度TRVTableItemInfo.BorderWidth

property BorderWidth: TRVStyleLength;

该值以屏幕像素(pixels)或缇(twips)为单位测量(打印时,根据打印机分辨率重新计算),具体取决于链接的 TRVStyle 组件的单位TRVStyle.Units

设置为 0 时隐藏边框。

默认值 0

单元格边框宽度TRVTableItemInfo.CellBorderWidth

property CellBorderWidth: TRVStyleLength;

该值以屏幕像素(pixels)或缇(twips)为单位测量(打印时,根据打印机分辨率重新计算),具体取决于链接的 TRVStyle 组件的单位TRVStyle.Units

设置为 0 时隐藏边框。

如果属性的值 <> BorderWidth,或者属性的值 <> 1 像素,则只能使用 CSS 将其保存为 HTML。

默认值 0

TRVTableBorderStyle

Unit RVTable;

type
  TRVTableBorderStyle =
    (rvtbRaised, rvtbLowered, rvtbColor, 
     rvtbRaisedColor, rvtbLoweredColor);

定义表格中的边框样式。 这是表格的 BorderStyleCellBorderStyle 属性。

  • rvtbRaised 凸起的 3d 边框,默认颜色。

  • rvtbLowered 凹陷的 3d 边框,默认颜色。

  • rvtbColor BorderColor/CellBorderColor 颜色的平面边框。

  • rvtbRaisedColor 凸起的 3d 边框。

    左侧和顶部:BorderLightColor/CellBorderLightColor

    底部和右侧:BorderColor/CellBorderColor

  • rvtbLoweredColor 凹陷的 3d 边框。

    左侧和顶部:BorderColor/CellBorderColor

    底部和右侧:BorderLightColor/CellBorderLightColor

表格边框样式TRVTableItemInfo.BorderStyle

property BorderStyle: TRVTableBorderStyle;

该属性定义了表格周围的边框样式。

如果要隐藏表格边框,设置 BorderWidth = 0。

默认值 rvtbRaised

单元格边框样式TRVTableItemInfo.CellBorderStyle

property BorderStyle: TRVTableBorderStyle;

该属性定义了单元格周围的边框样式。

如果要隐藏单元格边框,设置 CellBorderWidth = 0。

默认值 rvtbLowered

单元格的可见边框TRVTableCellData.VisibleBorders

property VisibleBorders: TRVBooleanRect;

用户无法撤消/重做对此属性的直接分配,请使用table.SetTableVisibleBorders

默认值 True, True, True, True (所有边框都可见)

表格边框水平间距TRVTableItemInfo.BorderHSpacing

property BorderHSpacing: TRVStyleLength;

该值以屏幕像素(pixels)或缇(twips)为单位测量(打印时,根据打印机分辨率重新计算),具体取决于链接的 TRVStyle 组件的单位TRVStyle.Units

BorderHSpacing 保存在 HTML+CSS 中:

  • BorderHSpacing=CellHSpacing

  • BorderHSpacing>=CellHSpacing and CellHSpacing>=0

默认值 2 (RVStyle.Units=rvstuPixels)

表格边框垂直间距TRVTableItemInfo.BorderVSpacing

property BorderVSpacing: TRVStyleLength;

表格边框和最外面的单元格之间的垂直间距。

该值以屏幕像素(pixels)或缇(twips)为单位测量(打印时,根据打印机分辨率重新计算),具体取决于链接的 TRVStyle 组件的单位TRVStyle.Units

BorderHSpacing 保存在 HTML+CSS 中:

  • BorderVSpacing=CellVSpacing

  • BorderVSpacing>=CellVSpacing and CellVSpacing>=0

默认值 2 (RVStyle.Units=rvstuPixels)

单元格水平间距TRVTableItemInfo.CellHSpacing

property CellHSpacing: TRVStyleLength;

该值以屏幕像素(pixels)或缇(twips)为单位测量(打印时,根据打印机分辨率重新计算),具体取决于链接的 TRVStyle 组件的单位TRVStyle.Units

该值可以为负数。 例如,指定 CellHSpacing=-CellBorderWidth 以水平折叠单元格边框。

默认值 2 (RVStyle.Units=rvstuPixels)

单元格垂直间距TRVTableItemInfo.CellVSpacing

property CellVSpacing: TRVStyleLength;

该值以屏幕像素(pixels)或缇(twips)为单位测量(打印时,根据打印机分辨率重新计算),具体取决于链接的 TRVStyle 组件的单位TRVStyle.Units

该值可以为负数。 例如,指定 CellVSpacing=-CellBorderWidth 以垂直折叠单元格边框。

默认值 2 (RVStyle.Units=rvstuPixels)

单元格内边距TRVTableItemInfo.CellPadding

property CellPadding: TRVStyleLength;

单元格内容与单元格边框之间的距离。

保留此属性是为了向后兼容(在version 10 中引入)。分配给此属性会将值分配给 CellHPaddingCellVPadding。 读取此属性将返回 Round((CellHPadding+CellVPadding)/2)

单元格水平内边距TRVTableItemInfo.CellHPadding

property CellHPadding: TRVStyleLength;

单元格内容到单元格边框的水平距离。

该值以屏幕像素(pixels)或缇(twips)为单位测量(打印时,根据打印机分辨率重新计算),具体取决于链接的 TRVStyle 组件的单位TRVStyle.Units

此值影响表中的所有单元格。

如果单元旋转,CellHPaddingCellVPadding 不会切换。

默认值 1 (RVStyle.Units=rvstuPixels)

单元格垂直内边距TRVTableItemInfo.CellVPadding

property CellVPadding: TRVStyleLength;

单元格内容到单元格边框的垂直距离。

该值以屏幕像素(pixels)或缇(twips)为单位测量(打印时,根据打印机分辨率重新计算),具体取决于链接的 TRVStyle 组件的单位TRVStyle.Units

此值影响表中的所有单元格。

如果单元旋转,CellHPaddingCellVPadding 不会切换。

默认值 1 (RVStyle.Units=rvstuPixels)

方法

设置单元格显示边框TRVTableItemInfo.SetCellVisibleBorders

procedure SetCellVisibleBorders(Left, Top, Right, Bottom: Boolean;
  Row,Col: Integer);

将值分配给 Cells[Row, Col].VisibleBorders,作为编辑操作。(在version 1.6 中引入)

与直接分配给 Cells[Row, Col].VisibleBorders 属性不同,在 TRichViewEdit 中插入的表(插入后)调用此方法,则可以撤消/重做此方法。

例子

设置1倍宽度的边框

procedure TForm1.Button1Click(Sender: TObject);
var
  Table: TRVTableItemInfo;
  Row, Col: Integer;
begin
  //创建5行5列的表格
  Table := TRVTableItemInfo.CreateEx(5, 5, RichViewEdit1.RVData);
  Table.BestWidth := 400;
  //设置表格和单元格边框样式为平面
  Table.BorderStyle := rvtbColor;
  Table.CellBorderStyle := rvtbColor;
  //设置边框大小和间距大小
  Table.BorderWidth := 1;
  Table.BorderVSpacing := 2;
  Table.BorderHSpacing := 2;
  //设置单元格边框大小
  Table.CellBorderWidth := 1;
  //设置CellHSpacing = 0和CellVSpacing = 0,相邻单元格边框会被视觉组合成2倍宽度边框。
  //Table.CellHSpacing := 0;
  //Table.CellVSpacing := 0;
  //可以通过设置CellHSpacing和CellVSpacing的值为CellBorderWidth的负值,实现单元格边框为1倍宽度(推荐)
  //Table.CellHSpacing := - Table.CellBorderWidth;
  //Table.CellVSpacing := - Table.CellBorderWidth;
  {
  //可以通过设置单元格边框的可见来实现单元格边框为1倍宽度
  //(奇数行上下边框可见奇数列左右边框可见 = 索引从0开始,偶数行索引上下边框可见偶数列索引左右边框可见)
  Table.CellHSpacing := 0;
  Table.CellVSpacing := 0;
  for Row := 0 to Table.RowCount - 1 do
    for Col := 0 to Table.ColCount - 1 do
      Table.SetCellVisibleBorders(not Odd(Col), not Odd(Row), not Odd(Col), not Odd(Row), Row, Col);
  }
  //将表格添加到文档中
  RichViewEdit1.InsertItem('', Table);
end;