RichView Table 表格对齐
Table表格对齐,当Table Option 表格的选项,使用默认值时。
RichView Table 表格对齐,关键是二步,一是行、列尺寸,二是Cell中文本的对齐。
一、列的宽度
table.Cells[0, 0].BestWidth := -10; // 表 单元最佳宽
table.Cells[0, 1].BestWidth := -45; // 表 单元最佳宽度 45% 注意负数 100%
table.Cells[0, 2].BestWidth := -25; // 正数是 像素值
table.Cells[0, 3].BestWidth := -12;
table.Cells[0, 4].BestWidth := -8;
上述代码,采用文档宽度的百分比,是比较合适的方法。所有Cell之和为-100。.
二、行的高度
RichView行的高度,可以通过代码设置。
但是,Table的行高,优先考虑整个行每个Cell的高度,保障显示全部内容,往往以Cell中高度的最大值为准。
为了让每行高度一致,我们在设置Cell的内部文档的高度,就要Cell的高度基本一致(小于某个值)。
三、Cell的文档
记住,Cell中的文档,就是一个TRichView。
向Cell中加入文档方法:
procedure AddNL(const s: String; StyleNo: Integer; ParaNo: Integer = -1;
const Tag: TRVTag=RVEMPTYAG);
插入行的相关文字和段落的属性,由StyleNo,ParaNo指定。
当Cell中仅是一行文本,只要设置相同的StyleNo,ParaNo即可。(前图)
下图中,当Cell中文本是多行时,有的Cell一行文本,有的是二行文本,指定相同的StyleNo,ParaNo,就是造成Cell,文本没有居中对齐。
改进的办法:在Cell[0,1]中,AddNL指定的 新的ParaNo,在SpaceBefore属性中,加入半个字符的高度。
效果如下:
注意:RichView表的行高,以行Cell的最大值为准,其它小于最大值的Cell,以末尾添加空白,类似顶对齐的方式:
出现这种情况,好的办法,是通过添加空白行,或添加行前距(SpaceBefore)解决。
就这一点,RichView很不方便,它不及EXCEL的Cell设置时,只要设置Cell居中对齐即可。
为了更好地做出随意的Table,请使用Table Option 表格的选项,可以任意设置表的高度等等参数。
如果刻意设置Tabld Table 行高,需要设置Table Option 选项,加入rvtoIgnoreContentWidth和rvtoIgnoreContentHeight。
rvtoIgnoreContentWidth,设置此项,在计算表格列的宽度时,单元格的内容将被完全忽略。宽幅图片、控件等都被裁剪。
rvtoIgnoreContentHeight,设置此项,则仅根据单元格的BestHeight属性计算行高。