TRichView.ru
English | Deutsch | Español | Português | Русский

      Описание 

Таблицы

Вставка таблиц

В документы TRichView можно вставлять таблицы, содержащие форматированные документы в каждой ячейке. Глубина вложенности таблиц (вставка одной таблицы в ячейку другой) не ограничена.

Возможно объединить несколько соседних ячеек в одну большую ячейку — как по горизонтали, так и по вертикали.

Таблица с выделенными ячейками


Внешний вид таблиц (рамки, разделительные линии, фон)

TRichView предоставляет богатый выбор средств для настройки внешнего вида таблиц.
Цвет задаётся для рамки вокруг таблицы, для ячеек по умолчанию, для конкретных ячеек. Более того, в ячейках могут находиться абзацы, имеющие свои собственные рамки.

Рамки бывают двух видов — плоские (одного цвета) и объёмные (выпуклые или вдавленные).

Помимо рамок, в таблицах могут присутствовать разделительные линии (rules) — горизонтальные или вертикальные полосы между ячейками.

Цвет и степень прозрачности фона задаётся как для таблицы в целом, так и для её ячеек. Отдельные стороны рамок ячейки могут быть скрыты.

Таблицы в TRichView построены по модели HTML. В этой модели таблица и каждая ячейка имеют свои рамки, отличные друг от друга. Рамки соседних ячеек могут касаться.
Множество редакторов RTF используют другую модель рамок таблиц, в которой рамки ячеек рассматриваются как линии в середине пространства между ячейками. Такие рамки могут быть и в таблицах TRichView, если задать отрицательное расстояние между ячейками.

Имеется возможность задать вертикальное выравнивание содержимого ячейки (по верхней, нижней границе ячейки или её середине) или повернуть его на 90°, 180° или 270°.

Фоновый рисунок, полупрозрачная заливка фона, вертикальный английский текст в таблице

У таблицы и каждой ячейки могут быть фоновые рисунки, размещённые в центре, повторяющиеся или растянутые. Рисунки могут быть прозрачными и даже полупрозрачными.

Прозрачные фоновые рисунки в ячейках накладываются на фоновый рисунок таблицы


Задание высоты и ширины

Как было сказано выше, таблицы в TRichView построены по модели HTML. Ширина столбцов вычисляется компонентом на основании ширины отдельных ячеек, заданной в абсолютных значениях (пикселях или твипах*) или в процентах от ширины таблицы.

Аналогично, ширина таблицы задаётся в абсолютных значениях (пикселях или твипах) или процентах от ширины документа.

Высота строки определяется высотой самой высокой ячейки в ней, которая вычисляется исходя из её содержимого, или может быть задана в абсолютных значениях (пикселях или твипах).

Ширина столбцов и высота строк изменяется мышью.

* твип равен двадцатой части типографского пункта, или 1/1440 дюйма

Пример использования таблиц в компоненте TRichView в e-Office Direct от toolsfactory


Отмена и возврат операций (Undo and Redo)

Если таблица вставлена в редактор (TRichViewEdit или TDBRichViewEdit), все операции над этой таблицей могут быть отменены, а затем возвращены обратно.

Отменяемые операции включают: ввод текста в ячейки таблицы, изменение размеров мышью, объединение ячеек, добавление и удаление строк и столбцов, изменение внешнего вида (цветов, рамок, отступов и т.д.)


Импорт и экспорт

Таблицы могут быть импортированы в составе документа RTF (Rich Text Format). TRichView поддерживает импорт таблиц из файлов RTF, сохранённых как по старым стандартам (Microsoft Word 6 and 97), так и по новым стандартам (включающим множество свойств, заимствованных из HTML). Компонент проделывает очень нетривиальную работу, преобразовывая таблицы из формата RTF во внутреннюю HTML-модель.

Таблицы экспортируются в DocX, RTF, HTML (с или без Cascading Style Sheets (CSS)), текстовые файлы.


Печать

Таблицы выводятся на печать как часть документа TRichView. Если некоторая таблица не помещается на одну страницу, она печатается на нескольких.

Имеется возможность указать первые строки таблицы как заголовок, который будет повторяться на каждой странице.

Ограничение: в то время как TRichView поддерживает разрывы страниц внутри ячеек, ScaleRichView может разделять таблицы только между строк.


Примеры

Дополнительная информация с форума поддержки (на английском):