Главная Обратная связь

Дисциплины:






Вывод текстовой информации



На первом этапе выводим текст. Пусть на данном этапе необходимо вывести следующее.

Рис 2.2 Вывод текстовой информации.

В обработчике нажатия первой кнопки начнем формировать код программы.

Создаем Объект Word.Application.

Variant v; if(!fStart) { try { vVarApp=CreateOleObject("Word.Application"); fStart=true; } catch(...) { MessageBox(0, "Ошибка при открытии сервера Word", "Ошибка", MB_OK); return; } }

О использовании try catch мы также уже говорили в Ч 1. п 1.3.

Сделаем приложение видимым.

vVarApp.OlePropertySet("Visible",true);

Переменной vVarDocs присваивается значение Documents - свойство объекта Word.Application, содержащее набор рабочих документов.

vVarDocs=vVarApp.OlePropertyGet("Documents");

Добавляем созданный документ в приложение - для этого надо выполнить вызов, прототип которого:

vVarDocs.OleProcedure("Add","Template", NewTemplate, DocumentType);

Пре NewTemplate true создается шаблон при false - документ.

Правильно для конретной версии Word создание документа записать как:

vVarDocs.OleProcedure("Add","C:\\WINDOWS\\Application Data\\Microsoft\\Шаблоны\\Normal.dot", false,0);

Посколько расположение шаблонов хранится для всех установленных типов документов в реестре, то для создания простого документа можно использовать установки по умолчанию и достаточно записать:

vVarDocs.OleProcedure("Add");

Этот вызов можно повторить столько раз сколько будет создано рабочих документов. Следует обратить внимание, что обратиться к документу после его создания можно по свойству Item следующим образом:

vVarDoc=vVarDocs.OleFunction("Item",n);

Здесь n=1 соответствует последнему созданному документу, n-1 предпоследнему, и. т.д.

Создаем, например 2 документа:

vVarDocs.OleProcedure("Add");vVarDocs.OleProcedure("Add");

Проверяем, что создано два документа:

if(vVarDocs.OlePropertyGet("Count") != 2){ MessageBox(0, "Ошибка при создании документов", "Ошибка", MB_OK); return;}

Будем работать с первым документом, как ни странно его Item = 2:

vVarDoc=vVarDocs.OleFunction("Item",2);

Смотреть будем тоже на первый документ - т.е. активируем его:

vVarDoc.OleProcedure("Activate");

Получаем свойство Paragraphs объекта документ:

vVarParagraphs=vVarDoc.OlePropertyGet("Paragraphs");

Задаем текст для вывода:

str="\t\tОзнакомлен\t\t";

Добавляем параграф:

vVarParagraphs.OleProcedure("Add");

Работаем с первым параграфом:

vVarParagraph=vVarParagraphs.OleFunction("Item",1);

Заносим в него текст:



vVarParagraph.OlePropertyGet("Range"). OlePropertySet("Text",str.c_str());

Выравниваем по правому краю (wdAlignParagraphRight - по правому краю), по причинам описанным выше используем константы вместо имен переменных:

vVarParagraph.OlePropertySet("Alignment",2);

Аналогично выводим следующие параграфы, в том числе и пустые:

str="Директор\t\t=Пупкин=";vVarParagraphs.OleProcedure("Add");vVarParagraph=vVarParagraphs.OleFunction("Item",2);vVarParagraph.OlePropertyGet("Range"). OlePropertySet("Text",str.c_str());vVarParagraph.OlePropertySet("Alignment",2);vVarParagraphs.OleProcedure("Add");str="\"....\"...........................2003г.";vVarParagraphs.OleProcedure("Add");vVarParagraph=vVarParagraphs.OleFunction("Item",4);vVarParagraph.OlePropertyGet("Range"). OlePropertySet("Text",str.c_str());vVarParagraph.OlePropertySet("Alignment",2);vVarParagraphs.OleProcedure("Add");str="Итоги работы за неделю.";vVarParagraphs.OleProcedure("Add");vVarParagraph=vVarParagraphs.OleFunction("Item",6);vVarParagraph.OlePropertyGet("Range"). OlePropertySet("Text",str.c_str());vVarParagraph.OlePropertySet("Alignment",1);

Константы выравнивания текста:

· wdAlignParagraphLeft = 0;

· wdAlignParagraphCenter = 1;

· wdAlignParagraphRight = 2;

· wdAlignParagraphJustify = 3;

· wdAlignParagraphDistribute = 4;

· wdAlignParagraphJustifyMed = 5;

· wdAlignParagraphJustifyHi = 7;

· wdAlignParagraphJustifyLow = 8.

Результат с достоинствами и недостатками видим на рисунке. Видно, что фон белый, шрифт не такой как хотельсь бы, включена линейка, проверка орфографии и т.п.






sdamzavas.net - 2019 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...