Курсовая работа: Delphi: работа с MS WORD

WordDocument1.Lists.Item(i).Range.Select;

Для этого в любом случае потребуется заготовка. Неважно, вставлена она в общий шаблонный документ или хранится в отдельном файле. Заготовку делаем так: выбираем в меню Формат/Список, и сохраняем, если это отдельный шаблон списка. У нас появляется пустой список без текста с одним маркером. Далее вспоминаем, как мы делали списки вручную - писали текст, нажимали "Enter", появлялся новый элемент списка. Теперь то же самое, только программно. Предположим, у нас уже открыт документ с заготовкой, и мы хотим внести в список пункты "Item 1" и "Item 2":

var i: Integer;

vcol: OleVariant;

...

i:=1;

vcol:=wdCollapseEnd;

WordDocument1.Lists.Item(i).Range.Select;

WordApplication1.Selection.Collapse(vcol);

WordApplication1.Selection.InsertAfter('Item 1');

WordDocument1.Lists.Item(i).Range.Select;

WordApplication1.Selection.Collapse(vcol);

WordApplication1.Selection.InsertAfter(#13);

WordDocument1.Lists.Item(i).Range.Select;

WordApplication1.Selection.Collapse(vcol);

WordApplication1.Selection.InsertAfter('Item 2');

WordDocument1.Lists.Items(i).Range.Select;

WordApplication1.Selection.Copy;

То есть мы вставляем в документ текст первого пункта списка, он попадает на свое место. Потом посылаем в Word символ перехода строки, он честно переходит и тем самым сам создает нам второй пункт списка, куда и вставляем нужную строку. Ну и так далее, нужное количество раз. Последние две строки нужны, если список заготовлен в отдельном файле - после их выполнения список оказывается в буфере обмена. Здесь выгода в том, что можем иметь заготовки списков разных стилей и по ходу дела выбирать, какой список создать. Затем открываем документ, где должен быть список, выделяем с помощью Range нужный кусок, копируем из буфера обмена через WordDocument1.Range(a,b).Paste. Чтобы не испортить файл с заготовкой, можем сразу после открытия пересохранить его под другим именем, а можем просто выйти из него без сохранения изменений

var vsave: OleVariant;

...

vsave:=wdDoNotSaveChanges;

WordDocument1.Close(vsave);

Константа сохранения изменений может принимать значения

Символьное обозначение Шестнадцатеричное
wdSaveChanges $FFFFFFFF
wdDoNotSaveChanges $00000000
wdPromptToSaveChanges $FFFFFFFE

Первое значение сохраняет изменения, второе дает возможность выйти без сохранения изменений. Последняя константа вызывает при выходе стандартный диалог сохранения изменений. Можем сделать и несколько по-другому. Хотя мы не можем создать новый элемент списка, но текст в уже существующем изменить можно:

var i,j: Integer;

...

i:=1;

j:=1;

К-во Просмотров: 931
Бесплатно скачать Курсовая работа: Delphi: работа с MS WORD