Таблицы в документах Word представляют собой объекты, являющиеся про-
должением основного текста в документе. Например, если мы создаем таб-
лицу, то она создается в месте нахождения курсора и, таким образом, раз-
рывает текст. То есть если требуется создать таблицу в определенном месте
документа, то необходимо предварительно установить в это место курсор.
Создадим таблицу в нашем документе, для этого используем функцию
TableInsertTable(NumColumns, NumRows), где NumColumns и NumRows —
количества столбцов и строк в создаваемой таблице. Есть и другие синтак-
сисы данной функции (см. справку по WordBasic).
Рассмотрим, как выглядит в Delphi фрагмент программы, создающей таб-
лицу.
Создание таблицы
procedure TOKBottomDlg3.Buttonl5Click(Sender: TObject);
var NumColumns, NumRows:integer;
begin
// Создаем таблицу размером 2 x 5
NumColumns:=2; NumRows:=5;
Forml.WB.TablelnsertTable(NumColumns, NumRows);
// Отображаем линии таблицы
Forml.WB.TableGridlines(true);
// Переходим в конец документа
Forml.WB.EndOfDocument;
// Вставляем пробел
Forml.WB.insert(' ' ) ;
// Переходим в конец документа
Forml.WB.EndOfDocument;
end;
Итак, данная процедура включает в себя несколько операторов. Первые два
пропускаем. Следующий оператор создает таблицу. Следующий за ним опе-
ратор представляет собой вызов процедуры, устанавливающей свойства ли-
ний таблицы. Если единственный аргумент процедуры TableGridlines уста-
новлен в значение True, то линии границ таблицы отображаются. Чтобы
скрыть линии границ, вызовем метод WB.TableGridlines(False). Далее пере-
ходим в конец документа и вставляем символ пробела, чтобы следующая
вставляемая таблица не слилась с этой таблицей.
Если между существующей таблицей и вновь создаваемой, следующей за
первой, нет ни одного символа, то вторая таблица просто сольется с первой.
В этом случае создание новой таблицы будет иметь эффект добавления но-
вых строк к существующей таблице. Добавить или вставить новую строку в
таблицу можно другим способом — с помощью процедуры TablelnsertRow.
Если вызвать эту процедуру без аргумента, то будет вставлена одна строка;
если при вызове в качестве аргумента задать целое число, то оно определит
количество вставляемых строк. Эта процедура выполняется, если курсор
находится в области таблицы, иначе генерируется ошибка.
Рассмотрим следующую процедуру.
деление строки в таблицу
procedure TOKBottomDlg3.Buttonl6Click(Sender: TObject);
begin
Forml.WB.TablelnsertRow; // Добавляем одну строку
Forml.WB.TablelnsertRow(3); // Добавляем три строки
end;
В результате выполнения этой и предыдущей процедур (см. пример кода
"Создание таблицы") получаем две таблицы с заданными параметрами
(рис. 9.9).
Рис. 9.9. Добавление таблиц в документ и вставка строк в последнюю таблицу
Создав таблицу, можно приступить к заполнению ее ячеек текстом. Вставка
текста в ячейки таблицы производится так же, как обычная вставка текста
в документ. Для этого достаточно установить курсор в необходимую пози-
цию. Последовательное перемещение по ячейкам таблицы можно выпол-
нять несколькими способами.
Используем для этого процедуры NextCell и PrevCell, позволяющие двигать-
ся последовательно от первой ячейки к последней или наоборот. Дополни-
тельно к перемещению курсора от первой к последней ячейке процедура
NextCell добавляет новую строку в конец таблицы, если до этого курсор на-
ходился в последней ячейке таблицы.
Рассмотрим применение этих процедур в Delphi на следующем примере
программного кода.
Перемещение курсора в таблице
procedure TOKBottomDlg3.Buttonl7Click(Sender: TObject);
begin
Forml.WB.NextCell;
end;
procedure TOKBottomDlg3.Buttonl8Click(Sender: TObject);
begin
Forml.WB.PrevCell;
end;
Организовать перемещение курсора в таблице можно и с помощью другой
пары процедур — NextObject и PrevObject. В отличие от уже рассмотренных
процедур, они позволяют перемещаться и между таблицами, не изменяя
при этом саму структуру таблицы. Пример их использования в приложениях
Delphi:
Перемещение от объекта к объекту
procedure TOKBottomDlg3.Buttonl9Click(Sender: TObject);
begin
Forml.WB.NextObj ect;
end;
procedure TOKBottomDlg3.Button20Click(Sender: TObject);
begin
Forml.WB.PrevObj ect;
end;
Для перемещения непосредственно в конец или начало строки или столбца
(и в начало или конец таблицы) применяют следующие четыре команды
WordBasic.
Перемещение в начало или конец строки или столбца
// Перемещаемся в начальную ячейку строки
procedure TOKBottomDlg3.Button3Click(Sender: TObject);
begin
Forml.WB.StartOfRow;
end;
// Перемещаемся в последнюю ячейку строки
procedure TOKBottomDlg3.Button4Click(Sender: TObject);
begin
Forml.WB.EndOfRow;
end;
// Перемещаемся в верхнюю ячейку столбца
procedure TOKBottomDlg3.Button5Click(Sender: TObject);
begin
Forml.WB.StartOfColumn;
end;
// Перемещаемся в нижнюю ячейку столбца
procedure TOKBottomDlg3.Button6Click(Sender: TObject);
begin
Forml.WB.EndOfColumn;
end;
Понятно, что, комбинируя представленные процедуры, можно перемещать-
ся в начало или конец таблицы, а также перемещаться между таблицами
в документе.
Перемещаясь по документу, используя функции поиска текстовых фрагмен-
тов или команды перемещения по объектам или по ячейкам таблицы, мож-
но вставлять текст в любое место документа. |