На этом шаге мы рассмотрим способы изменения положения таблицы и ее отдельных строк.
Как ранее было сказано, таблица создается в определенной области, которая определяется как аргумент метода Add. Таблица вставляется в промежуток между символами текста или накладывается на область текста. Когда таблица создана, мы можем изменить ее положение относительно левой границы документа или по вертикальному направлению в документе. Положение таблицы по вертикали определяется текстом, расположенным в документе до таблицы. Положение таблицы относительно левой границы страницы документа определяется свойствами самой таблицы. Рассмотрим эти свойства подробней.
Таблица включает в себя коллекции, объекты и другие свойства. Коллекция Rows объекта "таблица" определяет набор ее строк и общие свойства, присущие им. Свойство LeftIndent этой коллекции определяет положение таблицы относительно левой границы листа. Это свойство имеет числовой тип и может принимать как положительные, так и отрицательные значения.
Используя значение LeftIndent, можно не только задать, но и изменить горизонтальное положение таблицы. Как и сама коллекция Rows, элемент этой коллекции, представляющий собой одну указанную строку, также имеет свойство LeftIndent. В данном случае оно определяет положение строки относительно левой границы документа. Остается добавить, что доступ к элементу коллекции Rows осуществляется через объект Item(i), где i - номер строки. Попробуем изменить горизонтальное положение таблицы и выбранной строки, для этого используем следующий программный код:
procedure TForm1.LeftPosChange(Sender: TObject); //Запоминание левого отступа всей таблицы begin table.Rows.LeftIndent:=StrToInt(LeftPos.Text); end; procedure TForm1.LeftPosRow1Change(Sender: TObject); //Запоминание левого отступа впервой строки begin table.Rows.Item(1).LeftIndent:=StrToInt(LeftPosRow1.Text); end;
Результат работы приложения изображен на рисунке 1:
Рис.1. Результат работы приложения
На рисунке 1 представлена форма, в которой задаются эти изменения. Компонент ListBox1 выбирает таблицу из списка и помещает ссылку на таблицу в переменную table типа variant. Компоненты LeftPos и LeftPosRow1 задают положение всей таблицы и первой строки соответственно.
Рассмотрим еще некоторые свойства коллекций и элементов коллекций строк и столбцов, которые в большинстве своем аналогичны. Есть только различия, определяемые расположением этих элементов таблицы - если строки имеют параметр "высота", то столбцы имеют параметр "ширина".
В состав коллекций Rows и Columns входит свойство, содержащее количество строк и столбцов таблицы Count.
Доступ к отдельным строкам и столбцам осуществляется посредством объекта Item(). Чтобы задать высоту строки, используем свойство Height элемента коллекции Rows.Item(). Например:
table.Rows.Item(1).Height:=21;.
Для задания высоты одновременно всех строк таблицы используйте оператор
table.Rows.Height:=21;.
Если попытаться задать слишком маленькую высоту строки, получим ошибку выполнения. Для задания ширины столбца используется свойство Width элемента коллекции Columns.Item(). Например, для задания ширины первого столбца используем следующий оператор Delphi:
table.Columns.Item(1).Width:=43;.
Для задания одинаковой ширины всех столбцов используйте оператор:
table.Columns.Width:=43;.
На следующем шаге мы рассмотрим задание границ и заливку ячеек таблицы.