Ole package что это word

Библиографическое описание:


Рудниченко, А. К. Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ. Методы защиты от них / А. К. Рудниченко, С. О. Кошелев. — Текст : непосредственный // Молодой ученый. — 2016. — № 29 (133). — С. 36-38. — URL: https://moluch.ru/archive/133/37122/ (дата обращения: 14.04.2023).



В данной статье рассказывается, что такое OLE интерфейс, его простейшее применение. Также рассматривается, как с помощью него распространяются вредоносные программы в виде документов Microsoft Word на различные предприятия. Предлагается список мер, которые помогут уменьшить риск получения заражённого файла на компьютеры организации.

Ключевые слова: Microsoft Office, Word, OLE интерфейс, OLE объекты, информационная безопасность, вредоносные программы

В настоящее время в мире существует множество программ, разработчики которых относят свои продукты к разряду офисных. Наибольшую популярность набрал Microsoft Office. Самым массовым продуктом из этого набора является Microsoft Word. Им пользуются практически все как на домашних компьютерах, так и на компьютерах на предприятиях.

Microsoft Word (MS Word) — многофункциональная система обработки текстов, обладающая полным набором средств, необходимых для быстрого создания и эффективной обработки документов практически любой степени сложности. Но на редактировании текста его функционал не ограничивается. Расширяются возможности офисных программ семейства Microsoft с помощью различных дополнений, таких как Visual Basic для приложений, OLE объекты, ActiveX объекты и другие. Таким образом, MS Word — не только текстовый редактор, а ещё средство для выполнения самых разных алгоритмов, написанных на Visual Basic или запуска и связывания с документом различных программ.

Интерфейс OLE (Object Linking and Embedding — связывание и внедрение объектов) поддерживается множеством различных программ и используется для помещения документа, созданного в одной программе, в другую программу. Например, можно вставить документ MS Word в книгу MS Excel. Задача интерфейса OLE проста — создание промежуточного звена между программами для упрощения работы с различным программным обеспечением, поэтому OLE чаще всего используется тогда, когда обрабатываются составные документы с различными между собой системами. В данный момент OLE интерфейс используется в виде OLE объектов, которые зачастую представляют собой различные мультимедийные данные.

Алгоритм вставки объекта, который содержит ссылку на содержимое из другой программы очень прост:

  1. Открыть MS Word и определить место, где будет помещён OLE объект;
  2. На вкладке «Вставка» в группе «Текст» щёлкнуть «Объект»;
  3. Открыть вкладку «Создание из файла»;
  4. В поле «Имя файла» ввести имя файла или нажать кнопку «Обзор» для выбора файла из списка.

Существует два режима вставки объектов:

– Без связи с исходным файлом. Вставка содержимого указанного файла в документ происходит так, чтобы его можно было редактировать, используя приложение, в котором он был создан. Изменения в исходном файле не отображаются в OLE объекте, который вставлен в документ. Для этого имеется функция редактирования OLE объекта.

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

В качестве OLE объекта может быть вставлен не только документ из линейки продукта Microsoft Office. Например, возможно вставить ссылку на простейший текстовый документ, изображение или PDF-документ. Особое внимание стоит уделить тому, что функционал OLE интерфейса позволяет вставлять таким же образом и исполняемые файлы, которые могут нанести вред операционной системе или отдельным файлам.

Таким образом, OLE объект и сам документ, созданный в Microsoft Word, может содержать в себе вредоносный код, который не будет детектироваться антивирусным программным обеспечением. Отсутствие каких-либо замечаний со стороны защищающих программ обуславливается тем, что вредоносный код создан полностью легальными средствами, а также потому что конечным результатом является документ формата «*.doс» или «*.docx» соответственно.

Вредоносный код, содержащийся в OLE объекте, выполняется не сразу. Для запуска исполняемого файла из документа MS Word необходимо кликнуть два раза по вставленному объекту. На данном этапе злоумышленники пытаются доказать жертве отсутствие подозрительного контента: рисунок стандартного объекта заменяется на изображение какой-либо таблицы, а над ней пишется просьба о том, что необходимо кликнуть на таблицу дважды (например, «Для просмотра таблицы кликните дважды на таблицу»). Для запуска исполняемого файла пользователь должен согласиться с запуском в вполне стандартном окне запуска. Пример вредоносного документа с OLE объектом представлен на рисунке 1.

Рис. 1. Демонстрация вредоносного документа с OLE объектом

Для убедительности такие документы с вредоносным кодом посылаются по электронной почте под видом письма от государственных органов (например, налоговой службы) с помощью замены заголовка письма. Таким образом, сотрудник, открывающий письмо, не видит настоящего адреса отправителя. Он замаскирован (например, под noreply@nalog.ru), и визуально определить, настоящий это адрес или изменённый заголовок, зачастую невозможно.

В рамках любого предприятия неосведомлённые сотрудники могут пропустить предупреждение об открытии исполнительного файла, так как оно выглядит стандартно и пользователем нарочно пропускается в силу привычного интерфейса окна. Формату Microsoft Word чаще всего доверяют и не подозревают от него никакой вредоносной активности, что «играет на руку» злоумышленникам. Исходя из этого, шанс того, что сотрудник организации откроет документ и осуществит запуск вредоносного программного обеспечения, достаточно велик.

Безусловно, в интересах организации обезопасить компьютеры сотрудников. Для того, чтобы уменьшить (или вовсе исключить) риск заражения от данного способа распространения вредоносных программ предлагаются следующие меры:

– Использование аппаратных или программных средств защиты для фильтрации трафика электронной почты. Таким образом, письма с изменёнными заголовками будут отсеиваться или помечаться статусом «Подозрительно»;

– Своевременное и регулярное обучение сотрудников организации, а также их информирование о сценариях заражения, так как распространение вредоносных документов допустимо и без использования электронной почты;

– Использование относительно новой версии пакета Microsoft Office (2010 и выше). Последние версии данного продукта имеют в своём функционале «Защищённый просмотр», что уменьшает шанс того, что сотрудник откроет OLE объект. «Безопасный режим» позволяет открывать файлы и просматривать их в более безопасной среде (без использования макросов и дополнительных объектов).

Таким образом, стандартные легитимные средства редактирования документов могут служить распространителями различных программ без ведома пользователей. OLE объекты — это относительно новая ветвь развития в сфере вредоносных программ для предприятий. В конце 2016 года в адрес некоторых организаций уже начинают поступать такие документы, так как они отлично подходят для «доставки» вирусов-шифровальщиков или других вредоносных программ на компьютер жертвы руками обычных пользователей. А отследить, откуда пришло письмо с загадочным документом, зачастую не предоставляется возможным.

Литература:

1. Object Linking and Embedding // Википедия — URL: https://ru.wikipedia.org/wiki/Object_Linking_and_Embedding

2. Создание и изменение объектов OLE и управление ими // MicrosoftSupport — URL: https://support.office.com/ru-ru/article/Создание-и-изменение-объектов-OLE-и-управление-ими-e73867b2–2988–4116–8d85-f5769ea435ba

3. ActiveX // Википедия — URL: https://ru.wikipedia.org/wiki/ActiveX

4. Технология MicrosoftOLE используется для внедрения вредоносного кода в документы // Журнал «Хакер» — URL: https://xakep.ru/2016/06/16/microsoft-ole-for-malware/

Основные термины (генерируются автоматически): OLE, вредоносный код, документ, исходный файл, программа, электронная почта, вредоносный документ, запуск, интерфейс, исполняемый файл.

Ключевые слова

Информационная безопасность,

вредоносные программы,

Microsoft Office,

слово,

OLE интерфейс,

OLE объекты,

Word

Microsoft Office, Word, OLE интерфейс, OLE объекты, информационная безопасность, вредоносные программы

Похожие статьи

Современные системы автоматизированного динамического…

Модель взаимодействия с системами автоматизированного динамического анализа вредоносных программ. Метод автоматизированного анализа электронных документов в формате XML. Современные технологии обнаружения и уничтожения вредоносных программ.

Методика исследования вредоносных программ

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

Электронная почта.

Вредоносные программы, блокирующие работу с операционной…

– копирование файла вредоносной программы в системную папку

вредоносная программа, вирус, Windows, троянский, Уинлок, выкуп, Экран блокировки, винлокер.

Задать вопрос. ФИО. Электронная почта.

Актуальные способы внедрения компьютерных вирусов

Ключевые слова: вирус, вредоносная программа, информационная система, компьютер, юникод, RLO, джойнер.

Таким образом, в архив добавляются два исполняемых файла и запаковываются.

Использование криптографии с временным раскрытием для…

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

Запускает записанный на шаге 3файл.

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ.

Защита информации в сети | Статья в журнале «Молодой ученый»

Рассмотрим термин, вирус — это компьютерная программа или вредоносный код, отличительным

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

Выявление компонентов операционной системы, требующих…

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ. Методы защиты от них. Анализ методов обнаружения вредоносных программ.

Автоматизированное добавление печатных штампов при помощи…

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

Основные термины (генерируются автоматически): PDF, API, IAC, документ, VBA, OLE, обработанный PDF-документа, нижний колонтитул

Электронная почта. Ваш вопрос.

Современные системы автоматизированного динамического…

Модель взаимодействия с системами автоматизированного динамического анализа вредоносных программ. Метод автоматизированного анализа электронных документов в формате XML. Современные технологии обнаружения и уничтожения вредоносных программ.

Методика исследования вредоносных программ

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

Электронная почта.

Вредоносные программы, блокирующие работу с операционной…

– копирование файла вредоносной программы в системную папку

вредоносная программа, вирус, Windows, троянский, Уинлок, выкуп, Экран блокировки, винлокер.

Задать вопрос. ФИО. Электронная почта.

Актуальные способы внедрения компьютерных вирусов

Ключевые слова: вирус, вредоносная программа, информационная система, компьютер, юникод, RLO, джойнер.

Таким образом, в архив добавляются два исполняемых файла и запаковываются.

Использование криптографии с временным раскрытием для…

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

Запускает записанный на шаге 3файл.

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ.

Защита информации в сети | Статья в журнале «Молодой ученый»

Рассмотрим термин, вирус — это компьютерная программа или вредоносный код, отличительным

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

Выявление компонентов операционной системы, требующих…

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ. Методы защиты от них. Анализ методов обнаружения вредоносных программ.

Автоматизированное добавление печатных штампов при помощи…

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

Основные термины (генерируются автоматически): PDF, API, IAC, документ, VBA, OLE, обработанный PDF-документа, нижний колонтитул

Электронная почта. Ваш вопрос.

Похожие статьи

Современные системы автоматизированного динамического…

Модель взаимодействия с системами автоматизированного динамического анализа вредоносных программ. Метод автоматизированного анализа электронных документов в формате XML. Современные технологии обнаружения и уничтожения вредоносных программ.

Методика исследования вредоносных программ

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

Электронная почта.

Вредоносные программы, блокирующие работу с операционной…

– копирование файла вредоносной программы в системную папку

вредоносная программа, вирус, Windows, троянский, Уинлок, выкуп, Экран блокировки, винлокер.

Задать вопрос. ФИО. Электронная почта.

Актуальные способы внедрения компьютерных вирусов

Ключевые слова: вирус, вредоносная программа, информационная система, компьютер, юникод, RLO, джойнер.

Таким образом, в архив добавляются два исполняемых файла и запаковываются.

Использование криптографии с временным раскрытием для…

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

Запускает записанный на шаге 3файл.

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ.

Защита информации в сети | Статья в журнале «Молодой ученый»

Рассмотрим термин, вирус — это компьютерная программа или вредоносный код, отличительным

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

Выявление компонентов операционной системы, требующих…

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ. Методы защиты от них. Анализ методов обнаружения вредоносных программ.

Автоматизированное добавление печатных штампов при помощи…

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

Основные термины (генерируются автоматически): PDF, API, IAC, документ, VBA, OLE, обработанный PDF-документа, нижний колонтитул

Электронная почта. Ваш вопрос.

Современные системы автоматизированного динамического…

Модель взаимодействия с системами автоматизированного динамического анализа вредоносных программ. Метод автоматизированного анализа электронных документов в формате XML. Современные технологии обнаружения и уничтожения вредоносных программ.

Методика исследования вредоносных программ

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

Электронная почта.

Вредоносные программы, блокирующие работу с операционной…

– копирование файла вредоносной программы в системную папку

вредоносная программа, вирус, Windows, троянский, Уинлок, выкуп, Экран блокировки, винлокер.

Задать вопрос. ФИО. Электронная почта.

Актуальные способы внедрения компьютерных вирусов

Ключевые слова: вирус, вредоносная программа, информационная система, компьютер, юникод, RLO, джойнер.

Таким образом, в архив добавляются два исполняемых файла и запаковываются.

Использование криптографии с временным раскрытием для…

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

Запускает записанный на шаге 3файл.

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ.

Защита информации в сети | Статья в журнале «Молодой ученый»

Рассмотрим термин, вирус — это компьютерная программа или вредоносный код, отличительным

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

Выявление компонентов операционной системы, требующих…

Использование OLE-объектов в документах Microsoft Word как средство распространения вредоносных программ. Методы защиты от них. Анализ методов обнаружения вредоносных программ.

Автоматизированное добавление печатных штампов при помощи…

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

Основные термины (генерируются автоматически): PDF, API, IAC, документ, VBA, OLE, обработанный PDF-документа, нижний колонтитул

Электронная почта. Ваш вопрос.



Работа с OLE-сервером Word.

Аналогично как и в части 1 — поставим целью из приложения (контроллера
автоматизации) создать документ изображенный на Рис 2.1. Он также типичен с
точки зрения созданя прикладных программ, использующих для вывода информации
Word и содержит три наиболее часто используемых составных элемента: текстовую
информацию, таблицу и диаграмму.

Путь создания данного документа — это шаги, которые позволят освоить работу
с OLE сервером Word.

ole_2_1.jpg

Рис 2.1 Итоговый документ, сформированный контроллером.

В начало

2.1 Получение доступа к интерфейсу Application для Word.

  • 1. Включить в проект модули:

    #include      <ComObj.hpp>
    #include      <utilcls.h>
    
  • 2. Определить — лучше глобально (для наглядности и удобства) —
    переменные, отражающие иерархию объектов Word
    Приложение->Набор документов->документ->Набор парагрофов->
    Параграф->Строки

    Variant  vVarApp,vVarDocs,vVarParagraphs,vVarParagraph;
    ///////
  • 3. создать объект автоматизации:

    vVarApp=CreateOleObject("Word.Application");
    

    Также, по причине описанной ввыше (Ч 1. П 1.1), не будем ориентироваться
    на конкретную библиотеку *.olb Office (конструкцию типа Word.Application.8 или
    Excel.Application.9, как и имена констант использовать не будем).

С этого момента можно пользоваться свойствами и методами созданного ole
сервера, а именно:

  • Установка свойства.

    vVarApp.OlePropertySet("имя", значение);  
    
  • Чтение значения свойства.

    переменная = app.OlePropertyGet("имя"); 
    
  • Вызов метода:

    vVarApp.OleProcedure("имя",список параметров метода);
    

В начало

2.2 Интерфейсы и константы

Список интерфейсов и констант получаем при просмотре библиотеки типов
Microsoft Word Object Library, открыв например файл MSWord9.olb (или
другой в зависимости от версии Microsoft Offise). О пользовании библиотекой
см. Ч 1. P 1.2.

Аналогично будем пользоваться сохраненным файлом MSWord9.idl
и использовать так называемый «хитрый метод«.

Напомним его суть — перевод макроса из кода Visual Basic в С++ код.
Использование его аналогично как и при разработке контроллера для
управления сервером Excel:

  • 1. Запустить Word.

  • 2. Сервис/Maкрос/Начать запись

  • 3. Выполннить последовательность нужных действий.

  • 4. Остановить запись

  • 5. Вызвать Visual Basic (Alt+F11)

  • 6. Tools/Macros/Edit

  • 7. Перевести код из кода Visual Basic в С++.

В начало

2.3 Создание рабочего документа

Создаем новое приложение (File/New/Application) и сохраним его файлы в
директории по умолчанию (Projects) c именами по умолчанию Unit1.cpp, Unit1.h,
Unit1.dfm, Project1.cpp, Project1.bpr. Имена на данном этапе не цель, хотя не
возбраняется создать новую директорию и дать приложению и файлам подходящие
имена.

Переменные соответствующие используемым в программе объектам, а именно:

Variant  vVarApp,vVarDocs,vVarParagraphs,vVarParagraph;
bool fStart;

определим сразу все и глобально или в файле Unit1.h (в разделе private:) или
перед функциями в Unit1.cpp, хотя для данного этапа требуются пока не все переменные
и можно определить нужные и локально.

Переменная fStart служит индикатором того, что сервер запущен.

Разместим на форме как и ранее три кнопки (из вкладки Standart компонент
Button). Подписывать кнопки также не будем (сейчас это тоже не цель), но
запомним, что по первой кнопке будем работать с таблицей, по второй с
диаграммой, а по третьей закрывать сервер и приложение. Выполним два клика
по Button1 и Button3, создаем таким образом обработчики события нажатия кнопки.

void __fastcall TForm1::Button1Click(TObject *Sender)
{

}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
 if(fStart) vVarApp.OleProcedure("Quit");
 Close();
}

Вторяя кнопка таким образом служит для выхода из программы и закрытия сервера.

В начало

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

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

ole_2_2.jpg

Рис 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="ttОзнакомленtt";

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

vVarParagraphs.OleProcedure("Add");

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

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

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

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

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

vVarParagraph.OlePropertySet("Alignment",2);

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

str="Директорtt=Пупкин=";
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.

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

В начало

2.3.2 Изменение параметров документа.

Раскрасим текст как показано на рисунке.

ole_2_3.jpg

Рис 2.3 Изменение параметров текста.

  • 1. Изменяем фон:

     vVarDoc.OlePropertyGet("Background").
             OlePropertyGet("Fill").
             OlePropertyGet("ForeColor").
             OlePropertySet("RGB",RGB(255, 255, 153));
     vVarDoc.OlePropertyGet("Background").
             OlePropertyGet("Fill").
             OlePropertySet("Visible",-1);
     vVarDoc.OlePropertyGet("Background").
             OlePropertyGet("Fill").
             OleFunction("Solid");
    

    Константы отображения OlePropertySet(«Visible», msoTrue);:

    • msoTrue = -1,

    • msoFalse = 0,

    • msoCTrue = 1,

    • msoTriStateToggle = -3,

    • msoTriStateMixed = -2

  • 2. Убираем линейку:

    vVarApp.OlePropertyGet("ActiveWindow").
            OlePropertyGet("ActivePane").
            OlePropertySet("DisplayRulers",false);
    
  • 3. Изменяем размер окна:

    vVarApp.OlePropertySet("WindowState",1);
    
    • wdWindowStateNormal = 0;

    • wdWindowStateMaximize = 1;

    • wdWindowStateMinimize = 2.

  • 4. Убираем лишние панели инструментов:

    vVarApp.OlePropertyGet("CommandBars","Standard").
             OlePropertySet("Visible",false);
    

    Список панелей:

    • Standard

    • Formatting

    • Visual Basic

    • Web

    • Web Tools

    • WordArt

    • AutoText

    • Database

    • Clipboard

    • Picture

    • Frames

    • Reviewing

    • Drawing

    • Forms

    • Control Toolbox

    • Печать книгой

    • Stop Recording

    • Forms

    • Frames

    • Picture

    • Clipboard

    • Tables and Borders

    • Control Toolbox

    • Печать книгой

  • 4. Установка разметки страниц:

     vVarApp.OlePropertyGet("ActiveWindow").
             OlePropertyGet("ActivePane").
             OlePropertyGet("View").
             OlePropertySet("Type",1);
    

    Константы разметок и вида документа:

    • wdNormalView = 1;

    • wdOutlineView = 2;

    • wdPrintView = 3;

    • wdPrintPreview = 4;

    • wdMasterView = 5;

    • wdWebView = 6.

  • 5. Изменяем масштаб отображения документа:

    vVarApp.OlePropertyGet("ActiveWindow").
            OlePropertyGet("ActivePane").
            OlePropertyGet("View").
            OlePropertyGet("Zoom").
            OlePropertySet("Percentage",100);
    
  • 6.Проверка грамматики. Лучше для скорости ее отключить.

    vVarApp.OlePropertyGet("Options").
            OlePropertySet("CheckGrammarAsYouType",false);
    vVarApp.OlePropertyGet("Options").
            OlePropertySet("CheckGrammarWithSpelling",false);
    
  • 7. Устанавливаем параметры шрифта:

    Шрифт устанавливаем для строки параграфа. Так как изменение шрифта
    одинаково для любого параграфа, то описание проводим только для
    заглавия таблицы. Все используемые констнты приведены в конце пункта 8.

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

    Выделяем строку и получаем характеристики шрифта.

    v=vVarParagraph.OlePropertyGet("Range").
                    OlePropertyGet("Font");
    

    Цвет шрифта.

    v.OlePropertySet("Color",255);
    

    Размер шрифта.

    v.OlePropertySet("Size",14);
    

    Имя шрифта.

    v.OlePropertySet("Name","Times New Roman");
    

    Стиль шрифта.

    v.OlePropertySet("Bold",true);
    v.OlePropertySet("Italic",true);
    

    Подчеркивание.

    v.OlePropertySet("Underline",1);
    

    Цвет подчеркивания.

    v.OlePropertySet("UnderlineColor",16711680);
    

    Зачеркивание.

    v.OlePropertySet("StrikeThrough",false);
    v.OlePropertySet("DoubleStrikeThrough",false);
    

    Двойные линии обводки шрифта.

    v.OlePropertySet("Outline",false);
    

    Приподнятый.

    v.OlePropertySet("Emboss",false);
    

    Шрифт с тенями.

    v.OlePropertySet("Shadow",true);
    

    Скрытый

    v.OlePropertySet("Hidden",false);
    

    Все буквы в нижнем регистре.

    v.OlePropertySet("SmallCaps",false);
    

    Все буквы в верхнем регистре.

    v.OlePropertySet("AllCaps",false);
    

    Гравированный шрифт (утопленный).

    v.OlePropertySet("Engrave",false);
    

    В верхнем индексе.

    v.OlePropertySet("Superscript",false);
    

    В нижнем индексе.

    v.OlePropertySet("Subscript",false);
    

    Расстояние между буквами — разрядка в пикселях при + и уплотнение при -.

    v.OlePropertySet("Spacing",0);
    

    Масштаб.

    v.OlePropertySet("Scaling",100);
    

    Смещенный вверх или вниз в пикселях.

    v.OlePropertySet("Position",0);
    

    Кернинг — слияние в пунктах.

    v.OlePropertySet("Kerning",1);
    

    Анимация Обычный набор: красные муравии, мерцание, мигающий
    фон, неоновая реклама, фейерверк, черные муравьи.

    v.OlePropertySet("Animation",0);
    
  • 8. Изменяем шрифт в произвольном месте строки:

    Запоминаем где курсор — свойство Selection

    v=vVarApp.OlePropertyGet("Selection");
    

    Сдвинем курсор на 5 параграфов вниз. Четверка — сдвиг на параграфы.

    v.OleProcedure("MoveDown",4,5);
    

    Встаем на начало строки. Пятерка — в начало строки.

    v.OleProcedure("HomeKey",5);
    

    Сдвигаемся на 6 символов вправо. Единица — символы.

    v.OleProcedure("MoveRight",1,6);
    

    Выделяем 6 букв. Тотже сдвиг, но последняя единица означает выделить.

    v.OleProcedure("MoveRight",1,6,1);
    

    Заменим цвет выделенного текста.

    v.OlePropertyGet("Font").OlePropertySet("Color",8388608);
    

    Константы стилей линий подчеркивания.

    • wdUnderlineNone = 0;

    • wdUnderlineSingle = 1;

    • wdUnderlineWords = 2;

    • wdUnderlineDouble = 3;

    • wdUnderlineDotted = 4;

    • wdUnderlineThick = 6;

    • wdUnderlineDash = 7;

    • wdUnderlineDotDash = 9;

    • wdUnderlineDotDotDash = 10;

    • wdUnderlineWavy = 11;

    • wdUnderlineWavyHeavy = 27;

    • wdUnderlineDottedHeavy = 20;

    • wdUnderlineDashHeavy = 23;

    • wdUnderlineDotDashHeavy = 25;

    • wdUnderlineDotDotDashHeavy = 26;

    • wdUnderlineDashLong = 39;

    • wdUnderlineDashLongHeavy = 55;

    • wdUnderlineWavyDouble = 43.

    Константы цвета — практически это десятичная запись RGB и поэтому
    можно пользоваться любым способом записи, в том числе и принятым в Buildere.

    • wdColorAutomatic = 4278190080;

    • wdColorBlack = 0;

    • wdColorBlue = 16711680;

    • wdColorTurquoise = 16776960;

    • wdColorBrightGreen = 65280;

    • wdColorPink = 16711935;

    • wdColorRed = 255;

    • wdColorYellow = 65535;

    • wdColorWhite = 16777215;

    • wdColorDarkBlue = 8388608;

    • wdColorTeal = 8421376;

    • wdColorGreen = 32768;

    • wdColorViolet = 8388736;

    • wdColorDarkRed = 128;

    • wdColorDarkYellow = 32896;

    • wdColorBrown = 13209;

    • wdColorOliveGreen = 13107;

    • wdColorDarkGreen = 13056;

    • wdColorDarkTeal = 6697728;

    • wdColorIndigo = 10040115;

    • wdColorOrange = 26367;

    • wdColorBlueGray = 10053222;

    • wdColorLightOrange = 39423;

    • wdColorLime = 52377;

    • wdColorSeaGreen = 6723891;

    • wdColorAqua = 13421619;

    • wdColorLightBlue = 16737843;

    • wdColorGold = 52479;

    • wdColorSkyBlue = 16763904;

    • wdColorPlum = 6697881;

    • wdColorRose = 13408767;

    • wdColorTan = 10079487;

    • wdColorLightYellow = 10092543;

    • wdColorLightGreen = 13434828;

    • wdColorLightTurquoise = 16777164;

    • wdColorPaleBlue = 16764057;

    • wdColorLavender = 16751052;

    • wdColorGray05 = 15987699;

    • wdColorGray10 = 15132390;

    • wdColorGray125 = 14737632;

    • wdColorGray15 = 14277081;

    • wdColorGray20 = 13421772;

    • wdColorGray25 = 12632256;

    • wdColorGray30 = 11776947;

    • wdColorGray35 = 10921638;

    • wdColorGray375 = 10526880;

    • wdColorGray40 = 10066329;

    • wdColorGray45 = 9211020;

    • wdColorGray50 = 8421504;

    • wdColorGray55 = 7566195;

    • wdColorGray60 = 6710886;

    • wdColorGray625 = 6316128;

    • wdColorGray65 = 5855577;

    • wdColorGray70 = 5000268;

    • wdColorGray75 = 4210752;

    • wdColorGray80 = 3355443;

    • wdColorGray85 = 2500134;

    • wdColorGray875 = 2105376;

    • wdColorGray90 = 1644825;

    • wdColorGray95 = 789516.

    Константы выравнивания.

    • wdAnimationNone = 0;

    • wdAnimationLasVegasLights = 1;

    • wdAnimationBlinkingBackground = 2;

    • wdAnimationSparkleText = 3;

    • wdAnimationMarchingBlackAnts = 4;

    • wdAnimationMarchingRedAnts = 5;

    • wdAnimationShimmer = 6.

    Константы выделения.

    • wdMove = 0;

    • wdExtend = 1.

  • 9. На данном этапе можно сохранить документ:

    AnsiString vAsCurDir=GetCurrentDir();
    AnsiString vAsCurDir1=vAsCurDir+"\test.doc";
    vVarDoc=vVarDocs.OleFunction("Item",2);         
    vVarDoc.OleProcedure("SaveAs",vAsCurDir1.c_str());
    //Закрыть открытое приложение 
    //vVarApp.OleProcedure("Quit");
    

В начало

2.4 Работа с таблицами.

Добавим к создаваемому документу табличку, как показано на рисунке.

ole_2_4.jpg

Рис 2.4 Пример работы с таблицей.

Для добавления таблицы определим для нее параграф — добавляем два параграфа
и в последнем добавленном параграфе разместим таблицу.

vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFunction("Item",8);

Выбираем ряд в параграфе.

vVarRange = vVarParagraph.OlePropertyGet("Range");

Центрируем содержимое параграфа.

vVarParagraph.OlePropertySet("Alignment",1);

Добавляем таблицу OleProcedure(«Add», Range, Rows, Columns,
DefaultTableBehavior(0,1),AutoFitBehavior(0,1,2)); Две
последние константы определяют стиль таблицы применительно к
версии Word. Таблицу добавляем к активному документу в выбранный
ряд.

vVarDoc.OlePropertyGet("Tables").
        OleProcedure("Add", vVarRange, 3, 9,1,1);

Работать будем с первой таблицей — создана тоже одна.

vVarTable=vVarDoc.OlePropertyGet("Tables").
                  OleFunction("Item",1);

Выравниваем таблицу по центру.

vVarTable.OlePropertyGet("Rows").
          OlePropertySet("Alignment",1);

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

  • wdAlignRowLeft = 0;

  • wdAlignRowCenter = 1;

  • wdAlignRowRight = 2.

Установка ширины таблицы Ширина таблицы может быть
фиксированная, иметь разме по содержимому ячеек или ширине окна.

vVarTable.OleFunction("AutoFitBehavior",2);
  • wdAutoFitFixed = 0;

  • wdAutoFitContent = 1;

  • wdAutoFitWindow = 2.

Сетка в таблице как ни странно не свойство самой таблицы.

vVarApp.OlePropertyGet("ActiveWindow").
        OlePropertyGet("View").
        OlePropertySet("TableGridlines",true);

Устанавливаем стиль таблицы.

vVarTable.OleFunction("AutoFormat",25,true,true,
                                      true,true,
                                      true,false,
                                      true,false,true);
           //////Или////////
vVarTable.OleFunction("AutoFormat",25);

Здесь:

OleFunction("AutoFormat",Format,Borders,Shading, 
             Font,Color,HeadingRows,LastRow,
             FirstColumn,LastColumn,AutoFit);

Стилей таблиц в стандартном наборе Word 43 — константы Format от 0 до 42.
Остальные параметры определяют соответственно использование границ, заливки
шрифта, цвета ячеек, оформления верхней, нижней строки, оформления первого
и последнего столбце и автоподборв. При использовании шаблонов достаточно
указать/только Format.

Занесение информации в ячейки. Для этого выполняется следущая
последовательность действий:

  • Выбирается ячейка:

    vVarCell=vVarTable.OleFunction("Cell",x,y);
    -здесь x и y координаты ячейки.
    vVarCell.OleFunction("Select");
  • Выбираем свойство Selection приложения.

    v = vVarApp.OlePropertyGet("Selection").
                OlePropertyGet("Font");
    
  • Изменяем параметры шрифта, те которые изменились с последней
    установки его для свойства Selection, например:

    v.OlePropertySet("Size",16);
    v.OlePropertySet("Underline",0);
    v.OlePropertySet("Color",clYellow);
    
  • Добавляем текст в ячейку:

    vVarCell.OlePropertyGet("Range").
             OlePropertySet("Text","Наш текст");
    

После занесения информации в таблицу поставленная задача выполнена.

В начало

2.5 Текст кода программы.

Файл Unit1.h:

#ifndef      Unit1H
#define      Unit1H
#include     <Classes.hpp>
#include     <Controls.hpp>
#include     <StdCtrls.hpp>
#include     <Forms.hpp>
//-----------------------------------------------
class TForm1 : public TForm
{
 __published:
  TButton         *Button1;
  TButton         *Button3;
  TButton         *Button2;
  void __fastcall Button1Click(TObject *Sender);
  void __fastcall Button3Click(TObject *Sender);
 private:
  Variant         vVarApp,vVarDocs,vVarDoc,vVarParagraphs,
                  vVarParagraph,vVarRange,vVarTables,vVarTable,
                  vVarCell;
 bool             fStart;
 AnsiString       str;
 public:
  __fastcall TForm1(TComponent* Owner);
};
//-----------------------------------------------
extern PACKAGE TForm1 *Form1;
//-----------------------------------------------
#endif

Файл Unit1.cpp

#include      
#pragma       hdrstop
#include      
#include      
#include      "Unit1.h"
#pragma       package(smart_init)
//#include      
#pragma       resource "*.dfm"
#pragma       hdrstop
TForm1        *Form1;
//---------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Variant v,v1;
 if(!fStart)
 {
  try
  {
   //Создаем объект Word.Application
   vVarApp=CreateOleObject("Word.Application");
   fStart=true;
  }
  catch(...)
  {
   MessageBox(0, "Ошибка при открытии сервера Word",
                 "Ошибка", MB_OK);
  return;
  }
 }
 //Делаем сервер видимым
 vVarApp.OlePropertySet("Visible",true);
 //Получаем свойство Documents объекта
 vVarDocs=vVarApp.OlePropertyGet("Documents");
 //Создаем два документа
 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");
 //vVarDoc.OleProcedure("Select");
 vVarParagraphs=vVarDoc.OlePropertyGet("Paragraphs");
 //Задаем текст для вывода
 str="ttОзнакомленtt";
 //Добавляем параграф
 vVarParagraphs.OleProcedure("Add");
 //Работаем с первым параграфом
 vVarParagraph=vVarParagraphs.OleFunction("Item",1);
 //Заносим в него текст
 vVarParagraph.OlePropertyGet("Range").
               OlePropertySet("Text",str.c_str());
 //Выравниваем по правому краю
 vVarParagraph.OlePropertySet("Alignment",2);
 //Второй параграф
 str="Директорtt=Пупкин=";
 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());
 //wdAlignParagraphCenter
 vVarParagraph.OlePropertySet("Alignment",1);
 //Фон Документа
 vVarDoc.OlePropertyGet("Background").
         OlePropertyGet("Fill").
         OlePropertyGet("ForeColor").
         OlePropertySet("RGB",RGB(255, 255, 153));
 vVarDoc.OlePropertyGet("Background").
         OlePropertyGet("Fill").
         OlePropertySet("Visible",-1);
 vVarDoc.OlePropertyGet("Background").
         OlePropertyGet("Fill").
         OleFunction("Solid");
 //Убираем линейку
 vVarApp.OlePropertyGet("ActiveWindow").
         OlePropertyGet("ActivePane").
         OlePropertySet("DisplayRulers",false);
 //Размер окна
 vVarApp.OlePropertySet("WindowState",1);
 //Панели Инструментов
 vVarApp.OlePropertyGet("CommandBars","Standard").
         OlePropertySet("Visible",false);
 //Разметка страницы
 vVarApp.OlePropertyGet("ActiveWindow").
         OlePropertyGet("ActivePane").
         OlePropertyGet("View").
         OlePropertySet("Type",6);
 //Масштаб отлбражения документа
 vVarApp.OlePropertyGet("ActiveWindow").
         OlePropertyGet("ActivePane").
         OlePropertyGet("View").
         OlePropertyGet("Zoom").
         OlePropertySet("Percentage",100);
 //Проверка грамматики
  vVarApp.OlePropertyGet("Options").
          OlePropertySet("CheckGrammarAsYouType",false);
  vVarApp.OlePropertyGet("Options").
          OlePropertySet("CheckGrammarWithSpelling",false);
 //Шрифт  устанавливаем для строки параграфа
 vVarParagraph=vVarParagraphs.OleFunction("Item",6);
 v=vVarParagraph.OlePropertyGet("Range").
               OlePropertyGet("Font");
 //Цвет шрифта
 v.OlePropertySet("Color",255);
 //Размер шрифта
 v.OlePropertySet("Size",18);
 //Имя шрифта
 v.OlePropertySet("Name","Times New Roman");
 //Стиль шрифта
 v.OlePropertySet("Bold",true);
 v.OlePropertySet("Italic",true);
 //Подчеркивание
 v.OlePropertySet("Underline",1);
 //Цвет подчеркивания
 v.OlePropertySet("UnderlineColor",16711680);
 //Зачеркивание
 v.OlePropertySet("StrikeThrough",false);
 v.OlePropertySet("DoubleStrikeThrough",false);
 //Двойные линии обводки шрифта
 v.OlePropertySet("Outline",false);
 //Приподнятый
 v.OlePropertySet("Emboss",false);
 //Шрифт с тенями
 v.OlePropertySet("Shadow",true);
 //Скрытый
 v.OlePropertySet("Hidden",false);
 //Все буквы в нижнем регистре
 v.OlePropertySet("SmallCaps",false);
 //Все буквы в верхнем регистре
 v.OlePropertySet("AllCaps",false);
 //Гравированный шрифт утопленный
 v.OlePropertySet("Engrave",false);
 //В верхнем индексе
  v.OlePropertySet("Superscript",false);
 //В нижнем индексе
  v.OlePropertySet("Subscript",false);
 //Расстояние между буквами
  v.OlePropertySet("Spacing",0);
 //Масштаб
  v.OlePropertySet("Scaling",100);
 //Смещенный вверх или вниз в пикселях
  v.OlePropertySet("Position",0);
 //Кернинг - слияние в пунктах
 v.OlePropertySet("Kerning",1);
 //Анимация
 v.OlePropertySet("Animation",0);
 //Запоминаем где курсор - свойство Selection
 v=vVarApp.OlePropertyGet("Selection");
 //Сдвинем курсор на 5 параграфов вниз
 v.OleProcedure("MoveDown",4,5);
 //Встанем на начало строки
 v.OleProcedure("HomeKey",5);
 //Сдвигаемся на 13 символов вправо
 v.OleProcedure("MoveRight",1,13);
 //Выделяем "за неделю"
 v.OleProcedure("MoveRight",1,10,1);
 //зменим цвет выделенного текста
 v.OlePropertyGet("Font").
   OlePropertySet("Color",8388608);
 ///////////////////////Cоздание таблицы//////////
 //Добавляем два параграфа
 vVarParagraphs.OleProcedure("Add");
 vVarParagraphs.OleProcedure("Add");
 //Выбираем ряд в параграфе
 vVarParagraph=vVarParagraphs.OleFunction("Item",8);
 vVarParagraph.OlePropertySet("Alignment",1);
 vVarRange = vVarParagraph.OlePropertyGet("Range");
 //Добавляем таблицу
 vVarDoc.OlePropertyGet("Tables").
         OleProcedure("Add", vVarRange, 3, 9,1,1);
 //Работать будем с первой таблицей
 vVarTable=vVarDoc.OlePropertyGet("Tables").
                   OleFunction("Item",1);
 //Выравниваем таблицу по центру
 vVarTable.OlePropertyGet("Rows").
           OlePropertySet("Alignment",1);
 //Установка ширины таблицы
 vVarTable.OleFunction("AutoFitBehavior",2);
 //Сетка в таблице
  vVarApp.OlePropertyGet("ActiveWindow").
          OlePropertyGet("View").
          OlePropertySet("TableGridlines",true);
 //Стиль таблицы
 vVarTable.OleFunction("AutoFormat",25);
 //Занесение информации в ячейки
 for(int i=2;i <= 8;i++)
 {
  vVarCell=vVarTable.OleFunction("Cell",1,i);
  vVarCell.OleFunction("Select");
  v = vVarApp.OlePropertyGet("Selection").
              OlePropertyGet("Font");
  v.OlePropertySet("Size",16);
  v.OlePropertySet("Underline",0);
  v.OlePropertySet("Color",clYellow);
  vVarCell.OlePropertyGet("Range").
           OlePropertySet("Text",i-1);
 }
 random(50);
 int j,k=0;
 for(int i=2;i <= 9;i++)
 {
  vVarCell=vVarTable.OleFunction("Cell",2,i);
  vVarCell.OleFunction("Select");
  v = vVarApp.OlePropertyGet("Selection").OlePropertyGet("Font");
  v.OlePropertySet("Size",14);
  v.OlePropertySet("Underline",0);
  j=random(50);
  if(i != 9)
  {
   vVarCell.OlePropertyGet("Range").
            OlePropertySet("Text",j);
   k=k+j;
  }
  else
   vVarCell.OlePropertyGet("Range").
            OlePropertySet("Text",k);
 }
 k=0;
 for(int i=2;i <= 9;i++)
 {
  vVarCell=vVarTable.OleFunction("Cell",3,i);
  vVarCell.OleFunction("Select");
  v = vVarApp.OlePropertyGet("Selection").
              OlePropertyGet("Font");
  v.OlePropertySet("Size",14);
  v.OlePropertySet("Underline",0);
  j=random(30);
  if(i != 9)
  {
   vVarCell.OlePropertyGet("Range").
            OlePropertySet("Text",j);
   k=k+j;
  }
  else
   vVarCell.OlePropertyGet("Range").
            OlePropertySet("Text",k);
 }
 vVarCell=vVarTable.OleFunction("Cell",1,9);
 vVarCell.OleFunction("Select");
 v = vVarApp.OlePropertyGet("Selection").
             OlePropertyGet("Font");
 v.OlePropertySet("Size",16);
 v.OlePropertySet("Underline",0);
 v.OlePropertySet("Color",clRed);
 vVarCell.OlePropertyGet("Range").
          OlePropertySet("Text","Итог");
 for(int i=1;i <= 3;i++)
 {
  vVarCell=vVarTable.OleFunction("Cell",i,1);
  vVarCell.OleFunction("Select");
  v = vVarApp.OlePropertyGet("Selection").
              OlePropertyGet("Font");
  v.OlePropertySet("Size",16);
  v.OlePropertySet("Underline",0);
  v.OlePropertySet("Color",clBlue);
  v1=vVarApp.OlePropertyGet("Selection").
             OlePropertyGet("ParagraphFormat");
  v1.OlePropertySet("Alignment", 0);
  switch(i)
  {
   case 1:
    vVarCell.OlePropertyGet("Range").
             OlePropertySet("Text","Товар\Дни недели");
   break;
   case 2:
    vVarCell.OlePropertyGet("Range").
             OlePropertySet("Text","Компьютеры:");
   break;
   default:
    vVarCell.OlePropertyGet("Range").
             OlePropertySet("Text","Принтеры:");
  }
 }

 AnsiString vAsCurDir=GetCurrentDir();
 AnsiString vAsCurDir1=vAsCurDir+"\test.doc";
 vVarDoc=vVarDocs.OleFunction("Item",2);
 vVarDoc.OleProcedure("SaveAs",vAsCurDir1.c_str());
}
//---------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
 if(fStart) vVarApp.OleProcedure("Quit");
 Close();
}
//---------------------------------------

В начало

2.6 Работа с диаграммами.

2.6.1 Копирование диаграммы из рабочей книги Excel.

Диаграмму возьмем из созданной в Ч 1. рабочей книге Excel (документ с диаграммой
сохранен под именем amount.xls в текущей директории). Порядок работы с
документом и диаграммой схож с описанным в Ч 1. — создаем объект «Excel.Application»,
и рабочую книгу. Но книгу не добавляем в объект, а открываем существующую.

AnsiString vAsCurDir1=vAsCurDir+"\amount.xls";

Далее активируем текущую страницу книги (а их в книге одна) выбираем
текущий объект диаграммы (диаграмма тоже одна) и выполняем
копирование объекта в буфер обмена.

vVarSheet.OlePropertyGet("ChartObjects").
          OlePropertyGet("Item",1).OleProcedure("Copy");

Для объекта Word аналогично описанному выше создаем два
дополнительных параграфа, выбираем ряд в параграфе и устанавливаем
выравнивание, чтоба диаграмма оказалась в центре документа (параграфа).

При заполнении таблицы последней была заполнена левая ячейка в нижнем
ряду и курсор находится там — свойство «Selection». Получим
положение курсора и сдвинем его на две строчки вниз (wdLine = 5).

Variant v = vVarApp.OlePropertyGet("Selection");
v.OleFunction("MoveDown",5,2);

Здесь константы определяющие тип сдвига:

  • wdCharacter = 1;

  • wdWord = 2;

  • wdSentence = 3;

  • wdParagraph = 4;

  • wdLine = 5;

  • wdStory = 6;

  • wdScreen = 7;

  • wdSection = 8;

  • wdColumn = 9;

  • wdRow = 10;

  • wdWindow = 11;

  • wdCell = 12;

  • wdCharacterFormatting = 13;

  • wdParagraphFormatting = 14;

  • wdTable = 15;

  • wdItem = 16.

Осталось вставить диаграмму в документ

v.OleProcedure("Paste");

Результат работы представлен на рисунке 2.1. Полный текст кода,
реализующего вставку диаграммы, представлен ниже.

void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Variant vVarAppEx,vVarBooks,vVarBook,vVarSheet,vVarRange;
 if(!fStart) return;
 //Создаем объект Excel.Application
 vVarAppEx=CreateOleObject("Excel.Application");
 vVarAppEx.OlePropertySet("Visible",true);
 vVarBooks=vVarAppEx.OlePropertyGet("Workbooks");
 vVarAppEx.OlePropertySet("SheetsInNewWorkbook",1);
 AnsiString vAsCurDir1=vAsCurDir+"\amount.xls";
 vVarBooks.OleProcedure("Open",vAsCurDir1.c_str());
 vVarBook=vVarBooks.OlePropertyGet("Item",1);
 vVarSheet=vVarBook.OlePropertyGet("Worksheets",1);
 vVarSheet.OleProcedure("Activate");
 //Копируем диаграмму в буфер обмена
 vVarSheet.OlePropertyGet("ChartObjects").
           OlePropertyGet("Item",1).OleProcedure("Copy");
 //Перенесем диаграмму в документ Word
 vVarParagraphs.OleProcedure("Add");
 vVarParagraphs.OleProcedure("Add");
 //Выбираем ряд в параграфе
 vVarParagraph=vVarParagraphs.OleFunction("Item",11);
 vVarParagraph.OlePropertySet("Alignment",1);
 Variant v = vVarApp.OlePropertyGet("Selection");
 v.OleFunction("MoveDown",5,2);
 //Вставляем диаграмму
 v.OleProcedure("Paste");
 //Запоминаем результат
 vAsCurDir1=vAsCurDir+"\test.doc";
 vVarDoc=vVarDocs.OleFunction("Item",1);
 vVarDoc.OleProcedure("SaveAs",vAsCurDir1.c_str());
}

В начало

2.7 Некоторые другие возможности.

 //Выведет Microsoft Word
 Label1->Caption=vVarApp.OlePropertyGet("Caption");
 //Добавит к имени документа  слово Wlad - не к имени файла
 vVarApp.OlePropertySet("Caption","Wlad");
 //Откуда запущен Application(Word), можно и установить
 Label1->Caption=vVarApp.OlePropertyGet("Path");
 //Версия приложения, например 9.0
 Label1->Caption=vVarApp.OlePropertyGet("Version");
 //Установить активный  принтер
 vVarApp.OlePropertySet("ActivePrinter","Epson LQ-100 ESC/P 2 on LPT1:");
 //Имя активного принтера - будет выведено, если установлен в системе
 Label1->Caption=vVarApp.OlePropertyGet("ActivePrinter");
 //Имя активного рпинтера
 Label1->Caption=vVarApp.OlePropertyGet("ActivePrinter");
 //В режиме не свернутого окна и не развернутого
 //во весь экран можно получить или установить
 //Размер окна
 vVarApp.OlePropertySet("WindowState",0);
 Label1->Caption=vVarApp.OlePropertyGet("Height");
 vVarApp.OlePropertySet("Left",100);
 vVarApp.OlePropertySet("Width",400);
 vVarApp.OlePropertySet("Top",100);
 vVarApp.OlePropertySet("Height",400);
 Label2->Caption=vVarApp.OlePropertyGet("Height");
 //Имя пользователя запустившего процесс можно получит и учтановить
 Label1->Caption=vVarApp.OlePropertyGet("UserName");
 vVarApp.OlePropertySet("UserName","Petr");
 Label2->Caption=vVarApp.OlePropertyGet("UserName");
 //Аналогично UserAddress
 Label1->Caption=vVarApp.OlePropertyGet("UserAddress");
 vVarApp.OlePropertyGet("System");
 vVarApp.OlePropertyGet("FontNames");
 //Изменить ширину столбца таблицы
 vVarTable=vVarDoc.OlePropertyGet("Tables").OleFunction("Item",1);
 Variant v=vVarTable.OlePropertyGet("Columns");
 //Устанавливаем ширину первого столбца
 v.OleFunction("Item",1).OlePropertySet("Width",50);
 //А так сразу всех
 Variant v=vVarTable.OlePropertyGet("Columns");
 v.OlePropertySet("Width",25);
 //Добавляем строки и столбцы
  vVarTable=vVarDoc.OlePropertyGet("Tables").
                  OleFunction("Item",1);
  //Добавить столбец справа
  Variant v=vVarTable.OlePropertyGet("Columns").
  OleFunction("Item",1).OleFunction("Select");
  vVarAppWord.OlePropertyGet("Selection").OleProcedure("InsertColumnsRight");
  //Добавить столбец слева
  v=vVarTable.OlePropertyGet("Columns").
  OleFunction("Item",4).OleFunction("Select");
  vVarAppWord.OlePropertyGet("Selection").OleProcedure("InsertColumns");
  //Строку Выше
  v=vVarTable.OlePropertyGet("Rows").
  OleFunction("Item",2).OleFunction("Select");
  vVarAppWord.OlePropertyGet("Selection").OleProcedure("InsertRowsAbove",1);
  //Строку Ниже
  v=vVarTable.OlePropertyGet("Rows").
  OleFunction("Item",4).OleFunction("Select");
  vVarAppWord.OlePropertyGet("Selection").OleProcedure("InsertRowsBelow",1);
  //Выделить все
  v=vVarTable.OlePropertyGet("Columns").OleFunction("Select");
  //Обнулить
  vVarAppWord.OlePropertyGet("Selection").OleProcedure("Delete");
  //Вращаем лист
  vVarDoc=vVarDocs.OleFunction("Item",1);
  //И сделаем его Альбомным
  vVarDoc.OlePropertyGet("PageSetup").
   OlePropertySet("Orientation",1);
  //Как Выйти из таблицы
  //Зайдем в таблицу
  vVarCell=vVarTable.OleFunction("Cell",1,1);
  vVarParagraphs=vVarDoc.OlePropertyGet("Paragraphs");
  vVarParagraphs.OleProcedure("Add");
  vVarParagraphs.OleProcedure("Add");
  vVarParagraphs.OleProcedure("Add");
  //Выходим из таблицы
  //Сдвинем курсор на 50 параграфов вниз
  //Ячека таблицы считается как параграф. 
  //Четверка - сдвиг на параграфы.
  vVarAppWord.OlePropertyGet("Selection").
              OleProcedure("MoveDown",4,50);
  //Или по линиям 5
  vVarAppWord.OlePropertyGet("Selection").
    OleProcedure("MoveDown",5,7);

  //Как повернуть один лист в документе
 AnsiString str;
 vVarParagraphs=vVarDoc.OlePropertyGet("Paragraphs");
 vVarParagraph=vVarParagraphs.OleFunction("Item",1);
 vVarParagraphs.OleProcedure("Add");
 str="Параграф 1";
 vVarParagraph.OlePropertyGet("Range").
              OlePropertySet("Text",str.c_str());
  vVarParagraphs.OleProcedure("Add");
 vVarParagraph=vVarParagraphs.OleFunction("Item",2);
 str="Параграф 2";
 vVarParagraph.OlePropertyGet("Range").
              OlePropertySet("Text",str.c_str());
 vVarParagraphs.OleProcedure("Add");
 //Берем нужный параграф
 vVarParagraph=vVarParagraphs.OleFunction("Item",3);
 vVarRange = vVarParagraph.OlePropertyGet("Range");
 vVarRange.OleFunction("Select");
 //Selection.InsertBreak Type:=wdSectionBreakNextPage
 vVarAppWord.OlePropertyGet("Selection").OleProcedure("InsertBreak",2);

  vVarParagraphs.OleProcedure("Add");
 //Берем нужный параграф
 vVarParagraph=vVarParagraphs.OleFunction("Item",4);
 vVarRange = vVarParagraph.OlePropertyGet("Range");
 vVarRange.OleFunction("Select");
 str="Параграф 4";
 vVarParagraph.OlePropertyGet("Range").
              OlePropertySet("Text",str.c_str());
 vVarParagraphs.OleProcedure("Add");
 vVarParagraphs.OleProcedure("Add");
 vVarParagraph=vVarParagraphs.OleFunction("Item",6);
 vVarRange = vVarParagraph.OlePropertyGet("Range");
 vVarRange.OleFunction("Select");
 vVarParagraph.OlePropertySet("Alignment",1);
 vVarDoc.OlePropertyGet("Tables").
 OleProcedure("Add", vVarRange, 2, 9,1,1);
 vVarParagraphs.OleProcedure("Add");
 vVarRange = vVarParagraph.OlePropertyGet("Range");
 vVarRange.OleFunction("Select");
 //Вращаем лист
 //И сделаем его Альбомным
 vVarRange.OlePropertyGet("PageSetup").OlePropertySet("Orientation",1);
 //Изменяем межстрочный интервал абзаца по отношению к следующему за ним
 vVarParagraph=vVarParagraphs.OleFunction("Item",2);
 vVarParagraph.OlePropertyGet("Range").OleFunction("Select");
 vVarApp.OlePropertyGet("Selection").OlePropertyGet("ParagraphFormat").
    OlePropertySet("LineSpacing", 25);
 //Изменить формат листа, например сделать его A3
 vVarDoc.OlePropertyGet("PageSetup").OlePropertySet("PageWidth",29.7*28.35);
 vVarDoc.OlePropertyGet("PageSetup").OlePropertySet("PageHeight",42*28.35);


 //Работа с закладками
 //Этот материал прислал специально для сайта Москальченко В.А. (moskalchenko@kubkredit.com.ru). 
 //Он же сообщил, что решение взято на форуме ProgZ.ru и принадлежит участнику форума Rius. 
 AnsiString BoolMarkName = "www";
 Variant Selection = vVarApp..OlePropertyGet("Selection");
 Selection.OleFunction("GoTo", 4294967295, 0, 0, BookmarkName.c_str());
 //4294967295 значение wdGoToBookmark из MSWORD.IDL


 //Станем в начало документа
 AnsiString BookmarkName ="\StartOfDoc";
 Variant Selection = vVarAppWord.OlePropertyGet("Selection");
 Selection.OleFunction("GoTo", 4294967295, 0, 0, BookmarkName.c_str());
 //В продолжение "Станем в начало документа" замена текста в документе "Дмитрий" на "Иван"
 Variant Find = Selection.OlePropertyGet("Find");
 Find.OleProcedure ("Execute","Дмитрий"/*Текст, который будем менять*/,false/*учитывать регистрe*/,
 false/*Только полное слово*/,false/*Учитывать универсальные символы*/,false/*Флажок Произносится как*/,
 false/*Флажок Все словоформы*/,true/*искать вперед*/,1/*Активация кнопки Найти далее*/,
 false/* Задание формата */,"Иван"/*На что заменить*/,2/*Заменить все*/);




В заключении статьи повторим уже сказанное:

Богатства возможностей по управлению серверами автоматизации просто
потрясает, так как нет ни одного действия, которое можно было бы
выполнить в автономно запущенном приложении и которое бы не было доступно
для контроллера автоматизации. К сожалению каждое действие, которое
требуется выполнить, при программировании контроллеоа в среде «Borland C++
Builder», даже при применении описанного выше «хитрого» метода, порой
выполняется с большой затратой времени, но, как поется в песне: «..если долго
мучиться, что-нибудь получится!..». Отправные шаги сделаны. Дерзаем далее
.

В начало

Введение

Работа с OLE-сервером Excel

Пример программы управления OLE сервером Word

Домой


Сайт управляется системой uCoz



Руководитель: 

Мусина Марина Владимировна

Учреждение: 

ГАПОУ «МЦК-Казанский техникум информационных технологий и связи» г. Казань

Индивидуальный исследовательский проект по информатике «Технология OLE» направлен на изучение возможности использования программных средств технологии OLE и способов применения данной технологии в ОС Windows. Для испытания было рассмотрено применение OLE в программах MS Word и MS Excel.

Подробнее о проекте:

Творческая работа учащейся техникума о применении технологии MS Word и MS Excel направлена на получение автором общего представления о версиях и истории появления и развития технологии OLE. За основу учащаяся взяла такие версии технологии, как OLE 1.*, OLE 2.0 и ActiveX, и, изучив их, рассмотрела особенности их использования в программах текстовых документов.

Готовая творческая работа по информатике на тему «Технология OLE» демонстрирует этапы работы автора над использованием технологий OLE в работе с MS Word, где рассматривается вставка рисунка, вставка картинки, вставка фигуры, вставка снимка, вставка формулы, внедрение таблицы и внедрение объекта с помощью данной технологии. В рамках работы в MS Excel 2010 исследуется применение OLE в виде вставки надписи и внедрения объекта в файл.

Оглавление

Введение
1. Технология OLE.
2. Версии и история технологии.
2.1 OLE 1.*
2.2 OLE 2.0
2.3 ActiveX.
2.4. Применение OLEв MSWord 2010.
2.4.1 Вставка рисунка.
2.4.2 Вставка картинки.
2.4.3 Вставка фигуры.
2.4.4 Вставка диаграммы.
2.4.5 Вставка снимка.
2.4.6 Вставка формулы.
2.4.7 Внедрение таблицы.
2.4.8 Внедрение объекта.
2.5. Применение OLE в MSExcel 2010.
2.5.1 Вставка надписи.
2.5.2 Внедрение объекта (значок).
2.5.3 Внедрение объекта
Заключение
Литература

Введение

Все мы знаем о том, что при использовании современных редакторов можно воспользоваться сразу несколькими функциями, которые для данного редактора не являются основными. Так, например, установленная на персональном компьютере издательская система может послать некий текст на обработку в текстовый редактор, либо некоторое изображение в редактор изображений с помощью OLE-технологии.

Но не каждый пользователь задумывается, как на самом деле это работает. Здесь задействована особенная технологияOLE, позволяющая работать с данными, не предназначенными для данной программы, а также для работы и связи одной программы-процессора с другой программой-процессором.

Целью работы является: изучение возможности использования программных средств технологии OLE и способы применения данной технологии в ОС Windows.

Для достижения поставленной цели были сформулированы следующие задачи:

  • изучить литературу по данной теме;
  • изучить различные электронные источники по данной теме;
  • изучить теоретические и практические сведениятехнологииOLE;
  • определить среды применения данной технологии;
  • научиться распознавать и отличать данную технологию;
  • подвести итоги работы и сделать выводы.

Предметом исследования является: программная технология OLE.

Методы исследования: теоретический анализ источников, формализация, обобщение, описание.

Технология OLE

Технология OLE (ObjectLinkingandEmbedding) — этотехнология связывания и внедрения объектов в другие документы и объекты. Изначально, технология была разработана корпорацией Microsoft для своего продукта ОС Windows, а также для внедрения в отдельные дополнительные программы для ОС Windows, например, офисный пакет приложений MicrosoftOffice, где данная технология нашла более широкое свое применение.

OLE позволяет передавать часть работы от одной программы редактирования к другой и возвращать результаты этой работы.Например, несмотря на главную цель текстового процессора MicrosoftWord, — работа с текстовыми документами,при использовании данного текстового процессорав документе можно не только вводить данные, но и создавать таблицы, вставлять картинки, фотографии, часть элемента из другой программы MicrosoftOffice (например, таблицу из MicrosoftExcel) и т. д.

Основное преимущество использования OLE (кроме уменьшения размера файла) — в том, что она позволяет создать главный файл, картотеку функций, к которой обращается программа. Этот файл может оперировать данными из исходной программы, которые после обработки возвращаются в исходный документ.

Технология OLE включает в себя следующие возможности:

  1. Возможность совмещать в одном документе объекты с различными форматами данных (текст, рисунки, таблицы, базы данных и т.д.).
  2. Приложение, содержащее встроенный или связанный объект, хранит сведения о формате данных этого объекта и приложениях работающих с ним.
  3. Приложение, содержащее объект, осуществляет функции по отображению, перемещению и копированию объекта внутри документа и между приложениями. При этом поддерживается целостность объекта.
  4. Возможность автоматически вызывать приложения для редактирования объектов или импортировать функции редактирования из этого приложения.

Технология OLE< может быть использована в двух вариантах:

  • Установление связи с объектом (например, Word – Excel)
  • Внедрение самого объекта (например, вставка рисунков

)

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

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

Для данных представимых в наглядном виде (текст, рисунок и пр.) активизация связи приведет к запуску приложения, в котором можно будет произвести редактирование объекта.

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

Преимущества связывания:

  • происходит автоматическое изменение объекта в документе, при изменении оригинала объекта;
  • исходный документ имеет небольшой размер.

При внедрении объект существует только в единственном экземпляре и только там, где он внедрен, т.е. в самом документе (а не в отдельном файле, как при связывании). Для внедрения объекта можно использовать те же команды, что и при обмене данными, или использовать специальную команду для внедрения объекта.

Преимущества внедрения:

  • легкая переносимость документа на другой компьютер;
  • возможность редактирования объекта непосредственно в документе.

Версии и история технологии

OLE 1.*

OLE 1.0 является самой первой общедоступной версией технологии OLE. Был выпущен в 1990 году на основе технологии DDE (DynamicDataExchange) – предшественнике OLE, который использовался в более ранних версиях ОС Windows. Несмотря на то, что технология OLEбазируется на технологии DDE, это является не просто улучшенной версией данной технологии, но и расширенной по функционалу: технология DDE быласильно ограничена в количестве и методах передачи данных между двумя связанными программами.

С появлением технологии OLEстало возможным создать взаимосвязь между двумя документами и даже внедрение документа одного типа в документ другого типа, что значительно упростило и изменило представление о работе с документами.

Когда объект OLE помещен в буфер обмена информацией, он сохраняется в оригинальных форматах Windows (таких, как bitmap или metafile), а также сохраняется в своём собственном формате. Собственный формат позволяет поддерживающей OLE-программе внедрить порцию другого документа, скопированного в буфер, и сохранить её в документе пользователя.

OLE-серверы и клиенты взаимодействуют с системными библиотеками при помощи таблиц виртуальных функций (англ. virtualfunctiontables, VTBL). Эти таблицы содержат указатели на функции, которые системная библиотека может использовать для взаимодействия с сервером или клиентом. Библиотеки OLESRV.DLL (на сервере) и OLECLI.DLL (на клиенте) первоначально были разработаны для взаимодействия между собой с помощью сообщения WM_DDE_EXECUTE, предоставляемого операционной системой.

С появлением OLE 1.1, технология развилась в архитектуру COM (ComponentObjectModel) для работы с компонентами программного обеспечения. Позднее архитектура COM была преобразована и стала называться DCOM.

OLE 2.0

OLE 2.0 не имела особых технических инноваций: те же цели, те же задачи. Но была одна важная особенность: вместо того, чтобы использовать VTBL, OLE 2.0 стал надстройкой над архитектурой COM.

Также в этой версии OLEпоявилась автоматизации технологий draganddrop, inplaceactivationи structuredstorage.

ActiveX

В 1996 году Microsoft переименовала технологию OLE 2.0 в ActiveX. Были представлены элементы управления ActiveX, ActiveX документы и технология ActiveScripting. Эта версия OLE в основном используется веб-дизайнерами для вставки в страницы мультимедийных данных.

Применение OLE в MSWord 2013

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

Возможность выполнения всех этих функций возможна благодаря технологии OLE.

оле 1

Цель пункта практической части: Изучение применения технологии OLE в MicrosoftWord 2010.

Перед началом работы необходимо установить и запустить текстовый процессор MicrosoftWord 2010.

Вставка рисунка

Для вставки пользовательского изображения в MicrosoftWord 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Рисунок»

оле 2

2. Выбрать необходимое изображение из тех, что имеются на Вашем устройстве.

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

Вставка картинки

Для вставки картинки из предустановленной коллекции изображений в MicrosoftWord 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Картинка».

оле 3

2. Выбрать изображение из предоставленной коллекции

Применение: картинки предусмотрены для декоративного оформления документа.

Вставка фигуры

Для создания фигуры в MicrosoftWord 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Фигуры».

оле 4

2. Выбрать подходящую фигуру.

3. С помощью левой клавиши мыши создать фигуру.

Применение: Фигуры можно применять для создания простейших блок-схем, визуального разделения предоставленных понятий на группы, обозначения геометрических фигур, создания открыток и т. д. Областей применения данной функции безграничное множество.

оле 5

Вставка диаграммы

Для создания фигуры в MicrosoftWord 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Диаграммы».

оле 6

2. Выбрать подходящую диаграмму Примечание: В этой части задания начинается второго варианта использования технологии OLE – связывание программ. При точном следовании инструкции, начиная с этого шага будет автоматически открыта электронная книга MicrosoftExcel (если таковая установлена) под названием «Диаграмма в MicrosoftWord». Отличие этой книги от пользовательской в том, что она связана с документом, в котором создана диаграмма.

оле 7

3. Замените данные в таблице на те, которые подходят для решения Вашей задачи.

Применение: Диаграммы применяются для визуализации графиков, математических, аналитических и экономических задач.

оле 8

Вставка снимка

Для вставки снимки экрана активного элемента в MicrosoftWord 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Снимок».

оле 9

2. Выбрать нужное окно из доступных для создания и вставки снимка этого окна.

Применение: Снимки экрана применяются при составлении отчетов/практических работ.

Вставка символа Юникод

Для вставки символа Юникод в MicrosoftWord 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Символ».

оле 10

2. Выбрать подходящий символ или перейти во вкладку «Другие символы» и вставить символ из открывшегося окна.

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

оле 11

Вставка формулы

Для вставки внешнего объекта в MicrosoftWord 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Формула». Сразу же вставится «Место для формулы», а активная вкладка изменится на работу с формулами — «Конструктор». На более новых версиях MicrosoftWordоткроется дополнительное окно с редактированием формулы. Также можно воспользоваться встроенными формулами при раскрытии контекстного меню вставки формулы.

оле 12

2. Ввести/вставить подходящую формулу для решения подходящей задачи.

Применение: Формулы применяются для создания математических, физических и информационных задач. Могут быть использованы с фигурами, т. к. в стандартный набор фигур входят и объемные фигуры, для создания более продвинутых формул.

оле 13

Внедрение таблицы

Здесь возможны два варианта выполнения работы:

I. Использование встроенной таблицы.

Для вставки встроенной таблицы вMicrosoftWord 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Таблица».

оле 14

2. Задать необходимый размер таблицы.

3. Отредактировать полученную таблицу.

Использование встроенной таблицы

Для вставки встроенной таблицы вMicrosoftWord 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Таблица».

2. Выбрать «Таблица Excel». Сразу после выбора этого пункта запустится табличный процессор MicrosoftExcel, внутри текстового процессора MicrosoftWord.

оле 15

3. Отредактировать полученную таблицу.

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

Внедрение объекта

Для вставки внешнего объекта (программы) вMicrosoftWord 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Объект».

2. Выбрать подходящее для решения поставленной задачи меню «Создание» или «Создание из файла».

3. Выполнить настройку/указания файла для создания объекта.

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

Применение OLE в MSExcel 2010

Возможность использования технологии OLE реализована не только в текстовом процессоре MicrosoftWord 2010, но и в табличном процессоре MicrosoftExcel 2010. Однако в MicrosoftExcel 2010 эта технология раскрыта в наиболее специализированном направлении, но это не мешает дать оценку данной технологии в данной среде.

оле 16

оле 17

оле 18

Цель пункта практической части: Изучение применения технологии OLE в MicrosoftExcel2010.

Перед началом работы необходимо установить и запустить табличный процессор MicrosoftExcel 2010.

Вставка надписи

Длявставки надписи в MicrosoftExcel 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Надпись».Курсор изменится на стрелку.

оле 19

2. Задать место создания надписи.

3. Ввести соответствующие данные

Применение: Надписи, созданные данным методом, можно переместить не затрагивая ячейки самой таблицы, как отдельный объект.

оле 20

Внедрение объекта (значок)

Для внедрения внешнего объекта в MicrosoftExcel 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Объект».

2. Отметить флажок«В виде значка».

оле 21

3. Указать путь к файлу, установить параметры вставки.

Применение: Миниатюра-ярлык. Объект открывается в новом окне Windows, как отдельное приложение.

оле 22

Внедрение объекта

Для внедрения внешнего объекта в MicrosoftExcel 2010 необходимо:

1. Перейти во вкладку «Вставка» — «Объект».

2. Снять выделение с флажка «В виде значка».

оле 23

3. Указать путь к файлу, установить параметры вставки.

Применение: Вставка внешних связанных или независимых объектов из линейки Microsoft Office в таблицу MicrosoftExcel 2010.

оле 24

Заключение

В процессе выполнения данного исследования:

  1. Изучили основные свойства технологии OLE и её практическое применение в ОС MicrosoftWindows;
  2. Использовали текстовый процессор MicrosoftWord 2010 для наглядного применениятехнологии OLE;
  3. Создали несколько связанных файлов, используя технологию OLE.

Помимо этого мы сделали следующие выводы:

  1. Использование технологии OLEсущественно разнообразило функционал текстового процессора MicrosoftWord;
  2. С помощью технологии OLEможно запускать, вставлять и связать внешние файлы с текстовым процессором MicrosoftWord.

В конце своей работы, хочется сказать, что данная тема мне очень интересна, и я собираюсь работать над ней дальше.

Для написания данной работы были использованы ресурсы Сети Интернет.

Если страница Вам понравилась, поделитесь в социальных сетях:

метки: Технология, Объект, Документ, Данные, Объектный, Хранение, Вставить, Фрагмент

Сегодня в большинстве случаев работа на компьютере сводится к работе с электронными документами, так как именно в них содержится основная масса используемой информации. Под документом будем понимать объект обработки прикладной программы.

Каждый документ имеет формат, который определяется приложением (программой), создавшим этот документ. Расширение файла соответствует определенному формату. Документы созданные одним приложением почти всегда имеют один формат. Например, Word *.doc Excel *.xls PowerPoint *.ppt и т.д.

Проанализируем некоторые общие типы данных, для этого рассмотрим историю их появления. Информатика изначала предназначалась для обработки информации во всех её проявлениях, однако, как и всегда технологические достижения не могли в полной мере удовлетворить потребности теории. Сначала для обработки на компьютерах была представлена только числовая информация, затем техника стала воспринимать и текст. Для этого программисты создали текстовый и табличный процессоры. С продвижением научно-технического прогресса компьютерам поддалась и графика, далее настала очередь звуковой и видео информации.

Итак, можно сказать, что пользователи персонального компьютера имеют дело с различными данными, хранящимися в документах всевозможных форматов. Конечно эта схема не совсем подходит к реальной обстановке вещей, так как в жизни обычно человек работает не с одним типом данных а с множеством. Например, социолог, составляя отчет о проделанной работе, вынужден использовать несколько типов данных: текст, числа, рисунки, диаграммы, презентации и т.д. Поэтому возникла следующая проблема – Как в одном документе соединить данные различных типов? Без применения специальных компьютерных технологий этот вопрос остается не разрешимым.

Часто пользователи используют огромное число документов, в которых, как правило, имеется общая часть, поэтому в такой ситуации имеет смысл выделить эту часть, а в дальнейшем только ссылаться на неё, при этом, производя изменения в одном месте – информация в других документах будет автоматически обновляться. Решение проблемы совместного использования документов существенно облегчает работу пользователей. Как и предыдущий вопрос, она решается только с помощью определенных технологий и методов.

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

В основной части работы рассмотрены три основных метода обмена данными между документами, а в последней части показано как действует технология OLE в популярном пакете Microsoft Office.

22 стр., 10709 слов

Технологии обработки текстовой информации

… этом документов. В теоретической части моей курсовой работы будут показаны основные средства и технологии обработки текстовой информации. В практической части курсовой работы будет описана и решена задача … форматирования, Мощный текстовый редактор, располагающий большими возможностями по обработке текстовых документов (например, поиск и замена символов, средства проверки орфографии, вставка …

Часть 1. Буфер обмена

Во время своей работы операционная система (OC) Windows выделяет специальную область памяти — буфер обмена (Clipboard), который используется для обмена данными между приложениями и документами. Роль данных могут играть фрагмент текста или весь текст, рисунок, таблица и т. п. Буфер обмена — это простейшее, но очень эффективное средство интеграции при­ложений. В ОС windows через буфер обмена можно пере­мещать папки с файлами и отдельные файлы.

Принцип работы с буфером обмена. С помощью инструмен­тальных средств конкретного приложения можно выде­лить определенный фрагмент обрабатываемого документа (т. е. участок текста, изображение, таблицу) и поместить его на хранение (записать) в буфер обмена. Записанный в буфере фрагмент можно вставить либо в другое место того же доку­мента, либо в другой документ того же приложения, либо в документ другого приложения. Например, можно пере­местить картинку (или фрагмент картинки), нарисованную вами в графическом редакторе, в любое место документа Word или excel.

теряется безвозвратно

Работа с буфером обмена. Во всех приложениях Windows, до­пускающих использование буфера обмена, схема работы с ним стандартизована. Для обмена предусмотрены команды пункта меню Правка:

  • Вырезать — переместить выделенный фрагмент в буфер обмена (и удалить его в исходном документе);

  • Копировать – скопировать выделенный фрагмент в буфер обмена (исходный документ не меняется);

  • Вставить – вставить содержимое буфера обмена в теку­щий документ приложения (содержимое буфера не изме­няется).

Многие приложения дублируют эти команды в кнопках па­нели инструментов (а также в контекстном меню), и возможно перемещение, копирование или вставка фрагмента про­стым щелчком мыши на соответствующей кнопке. Вместо команд работы с буфером обмена можно использовать сочетания клавиш:

  • Вырезать — Shift+Del;

  • Копировать — Ctrl+Ins;

  • Вставить — Shift+Ins.

Следует помнить, что буфер обмена одинаково бесстрастно принимает на хранение и один символ, и графический фраг­мент объемом до нескольких мегабайт. Однако в последнем случае производительность компьютера может снизиться, — поэтому не следует оставлять в буфере слишком массивные части информации, которые вам уже не понадобятся. После использования такой информации лучше очистить буфер, послав в него, например любой текстовый символ.

Кратко рассмотрим операции: Вырезать, Копировать и Вставить.

1. Документ ? буфер обмена. Перед выполнением команд — Вырезать или Копировать необходимо выделить фраг­мент, помещаемый в буфер обмена. Если фрагмент не вы­делен, эти команды недоступны. Способы выделения фрагмента определяются соглашениями конкретной про­граммы, однако существуют и универсальные приемы. Следует отметить, что в команде Вырезать совмещены две стандартных операции: удале­ние выделенного фрагмента и заполнение буфера обмена. Поэто­му эта команда более «опасна», чем команда Копиро­вать.

10 стр., 4507 слов

Компьютерные технологии текстовых документов

… и редактирования, так и при собственно форматировании. 3. Состав и назначение операций редактирования текстового документа Набранный текст документа в дальнейшем может подвергаться изменениям. При традиционной технологии изготовления документов … их число или перемещать в другое место текста; раздвигать строки существующего текста, чтобы вставить туда новый фрагмент; … для создания больших документов, …

2. Буфер обмена ? документ. Если буфер обмена пуст (то есть с момента старта Windows команды Вырезать или Копиро­вать не выполнялась или буфер очищен специальной командой), операция Вставить недоступна.

Существует еще много способов заполнения буфера обмена, например, в ОС Windows есть следующая интересная возможность. Если, работая в операционной системе, нажать клавишу Print-Screen, графический образ всего экрана в виде растровой картинки будет скопирован в буфер обмена. Затем мо­жно вставить эту картинку в документ какого-либо редактора (например, Word), отредактиро­вать, если необходимо, и записать в файл. Если нажать клавиши Alt+PrintScreen, в буфер обмена ко­пируется только активное окно.

Куда вставляется фрагмент по команде Вставить? Точка вставки определяется соглашениями конкретной программы и характером информации, помещенной в буфер обмена. Например, редактор презентаций PowerPoint вставляет графи­ческий фрагмент в центр слайда, давая тем самым возможность вручную переместить новый элемент изображения в нужное место. Однако текстовый фрагмент практически всегда вставляется в позицию текстового курсо­ра. Процессор Word любой фрагмент вставляет в позицию текстового курсора.

Окно буфера обмена

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

Расширение функций буфера обмена. Приложения Windows устроены таким образом, что буфер обмена часто оказывается полезным даже тогда, когда никаких команд работы с буфе­ром не предусмотрено. Дело в том, что механизмы выделе­ния, копирования, вставки фрагментов документа (особенно текстовых) чаще всего встроены в приложение, и клавиатур­ные сочетания Ctrl+Ins и Shift+Ins работают всегда, не­зависимо от функций приложения.

Тем самым гибкость такой системы при обмене информацией между базой данных системы и внешними носителями информации значительно расширяется. Например, в системе может отсутствовать функция вставки готового текстового файла в базу данных (файл ? база данных), однако пользова­телю не придется заново набирать такой файл. Достаточно открыть его (например, в приложении Word), скопиро­вать в буфер обмена, а затем вставить данный фрагмент в нужное окно системы.

Часть 2. Непосредственный обмен данными

Средства непосредственного обмена данными между прило­жениями Windows можно разделить на три категории:

  • конвертирование (преобразование) файлов,

  • импорт и экс­порт данных,

  • динамический обмен данными (DDE — Dy­namic Data Exchange).

Глава 2.1. Экспорт-Импорт данных.

Конвертированием обычно называют изменение формата файла-документа или его части. При конвертировании файл-документ определенного типа, подготовленный средствами некоего приложения (возможно, в другой операционной системе) преобразуется приложением Windows в файл-документ того же (или при­мерно того же) типа. Операция конвертирования достаточно сложна и не удобна для рядового пользователя. К тому же результаты не всегда получаются ожидаемыми, так как любое преобразование, в том числе и формата, влечет за собой потери.

16 стр., 7621 слов

Учебная работа. Компьютерные технологии подготовки текстовых документов

… Реферат о текстовых документах разбит на две главы. В первой главе рассматриваются разные систематизации систем подготовки текстовых документов , ко­торые посодействуют для вас получить целостное Word излагаются принципы технологии подготовки, … WordPad из штатной поставки Windows. Более известны C-WordPad, … арифметические и логические операции данные программкой преобразования инфы управляет …

Многие специалисты считают конвертирование частным слу­чаем более общей операции – импорта-экспорта данных. В этом действии данные одного файла-документа по определен­ным соглашениям пересылаются в другой файл-документ. При этом оба файла могут иметь одинаковый тип, но разный формат (например, обмен между файлами баз данных), а могут принадлежать к разным классам документов (напри­мер, обмен между текстовыми файлами и базами данных).

Примерами импорта-экспорта являются: Файл .DBF (dBASE) ? Рабочий лист Excel (.XLS), База данных Access (.MDB) ? Документ Word.

При таком подходе формат переносимых данных остается неизменным, однако же, в приложении-источнике пользователь теряет ряд возможностей по редактированию вставленного фрагмента.

Глава 2.3. Динамический обмен данными (DDE).

DDE – это разработанный Microsoft набор специальных соглашений (протокол) об об­мене данными между приложениями Windows.

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

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

Очевидно, что подготовить данный документ необходимо с помощью текстового редактора, например Word. Представим, что подлежащие внесению в документ сведения о продук­тах и их ценах уже существуют в базе данных, которая управляется некоторым Windows-приложением, например Access. Для ускорения процесса подготовки документа разумно по уже известной методике передать необходимые сведения из базы данных в буфер обмена (Clipboard).

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

Использование DDE-метода позволяет избежать этого, так как обеспечивает динамический обмен данными и обновление их в подготавливае­мом документе по мере их изменения в источнике. При таких условиях «выходной» документ всегда будет «первой свежести».

Каким же образом происходит актуализация (динамическое обнов­ление данных в выходном документе)? Разберемся сначала с происхож­дением обновляемых данных. Они находятся в документе-источнике и хранятся там приложением-источником. Сохранение документа источника и лежит в основе функционирования DDE-метода. Из сохраненного документа-источника требуемые сведения копируются через Clipboard в выходной документ. Процедура этого копирования нам знакома.

Особенность состоит в том, что DDE-метод устанавливает между источником и копиями некоторую связь. И связь эта обеспечивает авто­матическое (или по требованию) обновление копии по мере появления изменений в источнике.

10 стр., 4772 слов

Графические возможности Microsoft Word

… иллюстраций. встраивание 3.1. Встраивание объектов При встраивании рисунков и иллюстраций (меню Вставка , команда Объект ) в документ вместе с объектом (например, иллюстрацией) сохраняется полная информация … Из файла из подменю Рисунок предоставляет возможность импортировать в Word-документ произвольный файл. В Word-документ можно импортировать файлы самых различных форматов. После активизации …

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

Данные, являющиеся источником в DDE-операциях, должны быть обязательно сохранены, так как связь осуществляется непосредственно через файлы документов.

Рассмотрим способ актуализации без открытия окна. Допустим, что у нас существуют два документа (Источник и Приемник) Word и между ними существует связь посредством DDE. Предположим, что мы открыли документ Источник и изменили его, затем закрыли окно текстового редактора. Поскольку мы закрыли окно Word, то внесенное изменение осталось теперь только в файле источника на диске. Далее опять запустим Word и загрузим в него оставшийся неизменным файл документа Приемника. Хотя во время внесения изменений в текст, окно приемника было закрыто, целевой Word-документ предстает в актуализированном виде. Это произошло потому, что связь в DDE методе осуществляется не через окна, а через файлы.

Если файл-источник поврежден или перемещен, то связь нарушается и для её восстановления необходимо заново создавать все ссылки.

Сейчас DDE вытеснено более новой технологией OLE, которая широко используется в Windows приложениях (об OLE речь пойдет в следующей главе).

Однако все же в ряде случаев DDE применяется. На сегодняшний день в DDE можно выделить два уровня:

  1. В некоторых приложениях Windows избранные опера­ции DDE встроены в интерфейс программы. Например, в процессоре Word имеется возможность решить следую­щую задачу. Пусть имеется документ Word, и в этом до­кументе содержится текст «серийного» письма, которое необходимо разослать по нескольким адресам. В этом письме имеются переменные поля с фами­лией адресата и его адресом. Фамилии и адреса содержат­ся в базе данных MS Access. Надо изготовить несколько экземпляров одного и того же письма, каждый из кото­рых будет отличаться от другого фамилией и адресом. Эту операцию можно выполнить с помощью команды Сервис-Слияние… (Tools-Mail Merge…).

  2. Второй уровень DDE требует знания некоторых про­граммных средств и может быть использован квалифици­рованными пользователями или программистами. Суть этого уровня проиллюстрируем примером. Допустим, программист разработал информационную систе­му, в которой предусмотрено автоматизированное составле­ние расписания каких-то мероприятий (например, встреч, конференций, семинаров и т. п.).

    Это расписание надо краси­во напечатать (с указанием дат, дней недели, колонтитулов и т. п.).

    Лучше всего справится с этой задачей процессор Word. Поэтому программист заготовил в процессоре Word некий шаблон расписания и снабдил его закладками.

    15 стр., 7227 слов

    Понятие, разработка и проектирование баз данных

    … реализованы функции централизованного хранения и накопления обрабатываемой информации, организованной в одну или несколько баз данных. Банк данных в общем случае состоит из таких компонентов как: базы (несколько баз) данных, системами управления базами данных, словаря данных, …

Итак, можно сказать, что с появлением метода DDE возник качественный скачек в продвижении технологии связывания и совместного использования документов. Но все же остались некоторые недочеты, которые в своем большинстве были исправлены схемой OLE.

Часть 3. OLE

Глава 3.1. Объектно-ориентированная технология

В данной главе кратко описывается объектно-ориентированная (ОО) тех­нология, которая используется в современных средствах разработки программного обеспечения и составляет ядро метода OLE.

Зачем нужна ОО технология? Стремительный прогресс аппаратных технологий дал рядовому потребите­лю огромную вычислительную мощь. Приобретая новое программное обеспече­ние, люди желают получить новые свойства и более сложные функции; они хотят воспользоваться преимуществами тех вычислительных средств, которыми располагают. Стремясь соответствовать этим запросам объем многих прикладных программ вырос до нескольких сотен мегабайт. Это привело к появлению чрезмерно сложных и громоздких систем, которые обычно:

  • выходят с опозданием;

  • имеют непомерно высокие цены;

  • используются эффективно лишь в небольшой своей части;

  • плохо адаптируются к требованиям пользователя;

  • нуждаются в устранении выявленных ошибок и доработки;

  • требуют определенного опыта для своей инсталляции.

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

Что такое ОО технология? Объектно-ориентированная технология – это термин, за которым скрывается ряд новых методологий анализа, проектирования и программи­рования. При использовании ОО технологии анализ, проектирование и разработка системы проводятся с помощью объектов. Под объектом пони­мается «разумный», самодостаточный агент, отвечающий за выполнение определенных системных задач.

Алгоритмическая и объектно-ориентированная декомпозиция. Традиционно сложилось так, что проектирование и реализация про­граммного обеспечения осуществляется с точки зрения функций или алго­ритмов. Как правило, мы разбиваем свои системы на взаимодействующие группы логически связанных функций, воздействующих на наборы несопос­тавимых данных. Другими словами, мы разделяем сложную задачу на более простые и решаем ее алгоритмически. При использовании алгоритмической декомпозиции проблема разбивается на фундаментальные функциональные единицы, или подсистемы. После этого каждая подсистема реализуется как набор связанных процедур. Эти процедуры воздействуют на данные, не учитывая присущие этим данным взаимосвязи.

Алгоритмическая декомпозиция —

Можно подойти к решению проблемы по-другому. Прежде чем изучать функциональные взаимосвязи или интересоваться, что происходит с набо­ром данных, необходимо выявить логически обособленные сущности в предметной области, определить их свойства, взаимосвязи и отношение к решаемой проблеме. Лишь разобравшись в сути проблемы, можно модели­ровать систему при помощи программного обеспечения. Такой способ анализа называется объектно-ориентированной декомпозицией.

В объектно-ориентированной декомпозиции термины, которые исполь­зуются при анализе и проектировании, наследуются прямо из предметной области. Это позволяет моделировать взаимоотношения реального мира естест­венным и адекватным образом, сохраняя семантические взаимосвязи между функциями и соответствующими данными. Например, при разработке системы резервирования авиабилетов определились бы такие сущности (объекты), как самолеты, маршруты, города и пассажиры. Пользуясь ОО декомпозицией, необходимо применить понятия, термины конкретной предметной области, а не искусственные системы разработки программного обеспечения.

11 стр., 5280 слов

По алгебре «Понятие функции»

… функции, классы функций, свойства функций, способы преобразования графиков функций, связь понятия функции с различными областями наук. Важной составляющей при изучении понятия является наглядная иллюстрация характерных свойств функции. Реферат … новая эпоха в развитии новой физики, потребовала введения нового объекта – «дельта-функции». Здесь возникли очень серьезные разногласия между физиками и …

Объектно-ориентированная декомпозиция

Что такое объекты? Объект в ОО технологиях определяется

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

состояние

Объектно ориентированная декомпозиция 1 Закрытые данныеЗакрытые данныеВзаимодействиеОбъект АОбъект ВСхема 3.1Объектно ориентированная декомпозиция 2

Объект включает в себя функции и данные, на которые эти функции воздействуют. Функции и данные, благодаря такой организации, связаны семантически. Поскольку все объекты в ОО системе имеют семантическую связь, общая структура такой системы является более гибкой и ясной по сравнению с традиционными способами организации.

Для современных информационных технологий понятие объекта является основополагающим. В следующей главе для более глубокого понимания OLE рассмотрим модель компонентного объекта.

Глава 3.2. Модель компонентного объекта (COM)

Модель компонентного объекта (Component Object Model — COM) — это вклад компании Microsoft в мир объектных моделей. Она служит основой для OLE, поэтому понимание ее чрезвычайно важно.

Что такое СОМ. СОМ представляет собой стандартную объектную модель промышленно­го уровня, которая унифицирует системы объектов. Эта модель специфици­рует

  • Определение объекта. Правила, по которым объекты структурируются и особым образом рас­полагаются в памяти.

  • Управление жизненным циклом. Правила, по которым объекты создаются и уничтожаются.

  • Протоколы взаимодействия между объектами. Правила, по которым объекты взаимодействуют друг с другом и прояв­ляют свои функции.

Пользуясь СОМ, следует помнить одну важную вещь. СОМ является простой технической спецификацией, то есть представляет собой строгий набор правил, регулирующих базовую структуру объекта и его семантику. Сама по себе СОМ не предоставляет никаких функциональных возможностей, она лишь формули­рует строгие технические предписания.

серверами,

Объектно ориентированная декомпозиция 3 СервисыOLE сервер АVBAOLE сервер ХOLE сервер АОбъект С++СерверыКлиенты

Схема 3.2

Объектно ориентированная декомпозиция 4

СОМ интерфейсы. Клиенты и СОМ-серверы общаются друг с другом при помощи интер­фейсов. Интерфейсы — это группы функций, которыми СОМ-объекты обычно пользуются для взаимодействия друг с другом и своими клиентами. Как было показано в главе посвященной ОО технологии, проявление функциональных возможностей посредством интерфейса — это фундаментальная концепция объектно-ори­ентированного программирования. Используя исключительно интерфейсы, СОМ поддерживает логическую абстракцию и неуклонно проводит в жизнь строгую инкапсуляцию.

4 стр., 1943 слов

Решение инженерных задач с помощью программ Excel и Mathcad

… двух переменных в Excel Данная курсовая работа позволила мне более близко познакомиться с программами MathCAD и MS Excel. Мной были рассмотрены способы решения инженерных задач с использованием данных программ. … Шушкевич. — Гродно: ГрГУ, 2001. — 138 с. 7. MathCAD 6.0 PLUS. Финансовые, инженерные и научные расчеты в среде Windows 95./Перевод с англ. — М.: Информационно-издательский дом «Филин», 1996. …

СОМ-серверы могут одновременно иметь несколько интерфейсов (как правило, так и бывает).

Каждый интерфейс предоставляет набор функ­ций, отличный от других.

Глава 3.3. Архитектура OLE

Архитектура OLE (object linking and embeding) основана на модели компонентного объекта (СОМ).

Сама OLE является унифицирующей технологией системного уровня, которая бази­руется на объектах и реализует интеграцию приложений. Она предоставляет клиентам набор объектно-ориентированных услуг. Можно сказать, что, с практической точки зрения, OLE — это набор системных библиотек (DLL-фай­лов), которые дают возможность прикладным программам взаимодействовать друг с другом. OLE является внутренней неотъемлемой частью операционной системы Windows, а не подсисте­мой. Например, в папке SYSTEM или SYSTEM32 на сетевом диске компьютера можно найти дюжину или даже больше файлов OLExxx.DLL. Это — составляет ядро OLE.

В OLE изначально заложена возможность расширения. Однако, в будущем не планируется новых «выпусков» в традиционном смысле этого слова. Так как когда компания Microsoft добавят в базовую архитектуру новые функции, она не станет называться OLE 2.2 или OLE 3.0. Она останется просто OLE.

OLE состоит из нескольких различных технологий, которые пользуются услугами друг друга для формирования объектно-ориентированной системы. Каждая технология реализует определенный набор функций. Однако реальная сила OLE заключается именно во взаимодействии составляющих ее технологий. OLE-технология структурированного хранения, к примеру, позволяет приложениям реализовать постоянство объектов. При этом поль­зователь не знает, как библиотеки OLE реализуют детали этой технологии, например, каким образом и где именно данные объекта должны быть записаны или считаны с диска. Большое преимущество OLE состоит в том, что ее можно расширить и настроить по своему желанию. Можно легко переопределить встроенные функции (путем реализации соответствующих стандартных СОМ-интерфейсов) и расширить набор доступных функции, создав собственные пользовательские интерфейсы.

Библиотеки OLE — это системные утилиты, посредством которых приложе­ния могут взаимодействовать друг с другом, получать совместный доступ к данным, а также вызывать функции друг друга

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

Целью компонентного программного обеспечения яв­ляется обеспечение возможностей для построения приложений путем ком­бинирования отдельных компонентов. Приложения будущего не будут таки­ми огромными монолитами, какими они являются сегодня. Наоборот, они будут состоять из разных компонентов, взаимодействующих друг с другом для выполнения некоторых функций высокого уровня.

65 стр., 32155 слов

Технология работы с документами в негосударственных организациях …

… работы с документами с учетом рекомендаций нормативно-методических документов и специальной литературы; внесение предложений по автоматизации делопроизводства и документооборота. При написании настоящей дипломной работы … создании и использовании информационных технологий и средств их обеспечения; … ситуации. По данным ISO (InternationalStandardsOrganization), управление документами становится одним …

Большое преимущество компонентов состоит в том, что их можно приобретать по мере необходимости у того поставщика, который предлагает лучшие компоненты. Пользователи могут покупать текстовые редакторы у одной компании, а программу для проверки орфографии у другой. Пока компоненты отвечают стандартным протоколам, они работают вместе как единое целое. Поэтому можно обновлять или заменять существующие ком­поненты, не затрагивая остальную часть системы.

Компоненты взаимодействуют друг с другом посредством четко определенных интерфейсов.

Чтобы компоненты стали жизнеспособными программными инструмен­тами, они должны взаимодействовать в пределах системы типа OLE, которая дает возможность использовать их за рамками конкретной прикладной программы. Система должна поддерживать взаимодействие компонентов, не накладывая ограничений на способ их реализации. OLE представляет собой именно такую систему.

Объектно ориентированная декомпозиция 5 Модель компонентного объекта (СОМ)Структурированное хранениеИнформация о типахПостоянные объектыУнифицированная передача данных Имена и привязкаСоединяемые объектыDrug-and-DropOLE автоматизацияЭлементы управления OLEСтраницы свойствСобытияСообщения об изменении свойствНепосредственная активизацияСвязываниеВстраиваниеСоставной документСхема 3.3Объектно ориентированная декомпозиция 6Объектно ориентированная декомпозиция 7

На данной схеме представлены OLE-технологии, которые тесно взаимосвязаны между собой и используют СОМ в качестве фунда­мента. Стрелками обозначается зависимость технологий, а точками возможное, но не обязательное использование.

Далее в этой главе будут рассматриваться отдельные технологии OLE, непосредственно относящиеся к объектам, и их преимущества для пользователей.

Управление памятью. Чтобы зарезервировать область памяти, объект может вызывать любые доступные команды. Обычно при распределении памяти используются опе­раторы из C++. Однако, если объекту необходимо передать блок памяти посредством OLE, он должен использовать встроенные функции.

хранение. Структурированное хранение — это термин, который используется для описания технологии, обеспечивающей постоянство объек­тов. По сути, структурированное хранение является механизмом, который СОМ-объекты используют для считывания своих данных и записи их на диск. Данные становятся «структурированными» благодаря тому, что биб­лиотеки OLE организуют их в виде логического файла. Эта технология сходна с тем, как файловая система организует файлы на жестком диске.

Два основных понятия, используемые в структурированном хранении, — это поток и хранилище. Хранилище является аналогом каталога файловой системы, а поток — аналогом файла. Хранилища могут содержать потоки и другие хранилища. В любой схеме структурированного хранения самое верхнее хранилище называется корневым. Оно представляет собой файл на диске (называемый структурированным файлом), который содержит логические хранилища и потоки более низкого уровня.

Технология структурированного хранения позволяет объектам логически организовать и систематизировать хранение своих данных. Каждое хранили­ще и поток являются «именованными блоками», которые используются объектами для хранения различных данных. Библиотеки OLE обеспечивают необходимые для этого функции.

Библиотеки OLE предоставляют объектам возможность создавать и/или использовать хранилища и потоки для записи своих данных на диск. При этом библиотеки OLE сами заботятся о размещении информации на диске, тогда как объект заботится лишь о логическом размещении данных (то есть определяет логический поток или хранилище, куда будут записаны данные).

Чтобы прочесть данные, объект открывает соответствующие хранилища и считывает данные из нужных потоков.

При помощи структурированного хранения OLE абстрагирует конкрет­ные детали физического хранения данных и передает большую часть функ­ций управления операционной системе. Это именно то, что делает с диском файловая система. Когда приложение хочет надолго сохранить некоторую информацию, оно открывает файл, записывает данные на диск и закрывает файл. В какой кластер и/или сектор были записаны данные? Обычно это не интересует простого пользователя. Все, что ему нужно, — это чтобы данные были сохранены в конкретном файле. Неважно, где он физически размещен. Таким образом, технология структурированного хранения — это, фактически, то же самое, что файловая система для диска.

Для реализации хранилищ и потоков библиотеки OLE используют СОМ-объекты. В хранилищах реализован интерфейс IStorage, а в потоках — интерфейс IStream. Чтобы приказать хранилищам и потокам выполнить некоторое действие, приложение получает указатель на интерфейс IStorage и/или IStream и вызывает соответствующие функции этих интерфейсов.

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

Глава 3.4. Типы и библиотеки типов

Библиотеки типов предоставляют сведения об объектах, их методах, интерфейсах, типах данных и исполняемых модулях. Вся эта информация располагается в файле, содержащем данные в особом формате. OLE обеспечивает стандартные методы для создания библиотек типов и поиска информации в них.

Так как информация о типе имеет стандартный, четко определенный формат, ее могут просматривать и отображать программы, называемые просмотрщиками объектов. А поскольку данные хранятся в файле, они могут быть получены даже тогда, когда в системе нет объектов такого типа.

Между прочим, файл библиотеки типов (TLB-файл) является структу­рированным файлом. Каждое логическое хранилище и поток в нем имеют четко определенное имя, что позволяет различным просмотрщикам анали­зировать их.

Постоянные объекты. Постоянными называются объекты, которые знают, каким образом читать и записывать информацию о своем состоянии на диск. Эту информацию могут считывать различные экземпляры объекта. Например, прежде чем быть удаленным из памяти, объект записывает на диск данные о своем состоянии. При создании другого экземпляра объекта того же типа новый объект может отыскать эти данные в заранее определенном месте и восстановить предыдущее состояние.

Контейнер (например, составной документ) обычно сообщает объекту о том, когда следует прочесть или записать в хранилище информацию о состоянии, однако эти действия объект выполняет самостоятельно. Это дает возможность разным объектам использовать различные схемы хранения и, в то же время, располагаться во множестве приложений-контейнеров, под­держивающих OLE.

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

Унифицированная передача данных. Унифицированная передача данных (UDT) — это OLE-технология, которая позволяет объектам обмениваться информацией стандартным образом. Кроме определения стандартов для обмена данными, UDT позволяет объектам извещать заинтересованные стороны (другие объек­ты) о том, что данные изменились. Те клиенты, которых интересуют изменения данных, могут при этом предпринять соответствующие действия. Объекты, взаимодействующие при помощи UDT, могут находиться в одном или разных адресных заменяет устаревшую к настоящему времени технологию DDE (Динамический обмен данными).

Имеются два значительных преимущества в применении OLE-техноло­гии UDT по сравнению с традиционной технологией DDE и буфером обмена (clipboard):

  • UDT обеспечивает более подробное описание совместно используемых данных. В этой технологии для описания данных и среды, на которой эти данные располагаются, используются две структуры, FORMATETС и STGMEDIUM. FORMATETC определяет обобщенный формат буфера обмена усовершенствованный таким образом, чтобы описывать целевое устройство (монитор, принтер, плоттер и т.д.), способ интерпре­тации данных (например, как уменьшенное или полноэкранное изобра­жение) и среду их хранения (например, оперативная память или диск).

  • UDT дает возможность пользоваться другими средствами обмена, поми­мо физической памяти. К примеру, большое растровое изображение, может быть сохранено на диске в виде структурированного файла, и совместно использоваться посредством отображения файла в памяти. Имея дело с UDT можно гибко выбирать оптимальную среду хранения для тех данных, которые необходимо использовать совместно.

Соединяемые объекты. Соединяемые объекты позволяют устанавливать двунаправленный канал связи между объектом и его клиентами. В стандартной модели OLE клиент совершает вызовы для доступа к функциям объекта. Объект, однако, может дополнительно передать одному или нескольким своим клиентам информацию, которая не была затребована в запросе. Объекты, которые поддерживают пересылку клиентам дополнительной ин­формации, называются соединяемыми. Соединяемые объекты называют так­же источниками советов, а клиентов — приемниками советов.

Технология Drag-and-Drop. OLE-технология Drag-and-Drop («перетащить и отпустить») определяет ви­зуальный, ориентированный на использование мыши способ обмена инфор­мацией с помощью буфера обмена. Посредством мыши пользователь может переносить информацию из одного объекта, который называется источником перетаскивания, в другой, называемый приемником перетаскивания. Объекты источника и приемника могут находиться в разных адресных пространствах. Технология Drag-and-Drop определяет строгий прото­кол взаимодействия, которого придерживаются источники и приемники.

Автоматизация. Автоматизация считается одной из самых мощных OLE-тех­нологий. Это механизм, при помощи которого объект предоставляет другим объектам и приложениям доступ к своим методам (функциям) и свойствам (характеристикам).

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

Первоначально, автоматизация задумывалась как глобальная среда для написания сценариев. Однако впоследствии компания Microsoft решила позволить другим поставщикам разрабатывать языки сценариев и среды программирования и получать доступ к мощным OLE-объектам при помощи механизма автоматизации. Серверы автоматизации разрабатываются с помощью языков, которые позволяют придать им быстродействие и гибкость.

Интерфейс IDispatch — это стандартный СОМ-интерфейс, который опреде­ляет функции автоматизации. Его должны реализовывать все серверы авто­матизации.

Составные документы. Составные документы, иногда называемые состав­ными файлами, интегрируют данные и объекты, созданные в различных приложениях, поддерживающих OLE. Такие документы могут содержать множество объектов других документов. Например, текстовый редактор Word, поддерживающий OLE, может получать таблицы и графики от программы обработки электронных таблиц, также поддерживающей OLE, скажем, Excel. Помимо объединения статической информации типа таблиц и графиков, составные документы могут также содержать «живые» данные, например звук, видео и анимацию.

Составные документы поддерживают следующие возможности:

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

  • Преобразование объектов. Объекты могут быть приведены к разным типам, чтобы разрешить использование одного и того же объекта различными прило­жениями. Например, объект одного типа электронных таблиц (Lotus 1-2-3) может быть преобразован в другой тип (Excel).

  • Оптимизированное хранение объектов. Объекты остаются на диске до тех пор, пока не потребуются, поэтому они не загружаются в память всякий раз, когда выполняется программа-контейнер. Кроме того, используя собственную технологию структурированного хранения, OLE поддерживает подтвержде­ния и откаты транзакций на уровне объектов. Это гарантирует целостность данных, поскольку объекты хранятся в файлах.

  • Связывание и встраивание объектов. Встраивание объектов — это возможность вставить объект в составной документ без сохранения ссылки на источник данных объекта. Например, можно встроить электронную таблицу Excel в документ Word. После этого объект, который находится в составном документе, будет полностью независим от первона­чального источника. Тогда изменения основного объекта не отразятся на встроенном объекте.

Посредством связывания объектов приложение поддерживает лишь связи с объектами, которые находятся в других приложениях. При активиз­ации связанного объекта библиотеки OLE отслеживают связь и вызывают ассоциированный объект. Например, документ Microsoft Word может содер­жать связь с таблицей Excel. Таблица и все ее данные полностью находятся в Excel, но могут быть использованы и в документе Word. Если первоначаль­ные данные таблицы изменятся, то эти изменения автоматически отобразят­ся в документе Word. Связывание зависит от расположения объектов. Другими словами, если таблицу Excel переместить в новую папку, связь будет разорвана.

Имена, псевдонимы и привязка. У объекта может быть имя. В таком случае OLE использует это имя для идентификации и обращения к объекту. Псевдонимами называются СОМ-объекты, в которых хранятся имена и местоположения других объектов. Получив соответствующие указания, псевдонимы опреде­ляют местоположение объектов, на которые ссылаются, и вызывают их. Этот процесс поиска и вызова объекта называется привязкой. OLE использует псевдонимы для поддержания связи с источниками данных объекта. Сами по себе псевдонимы, как объекты, встраиваются в составной документ, содержащий связи.

Когда активизируется документ, псевдоним осуществляет поиск связанного с документом объектом.

Непосредственная активизация. OLE-технология непосредственной активизации, ино­гда называемая визуальным редактированием, позволяет быстро и легко создавать и использовать составные документы. Вместо того чтобы переклю­чаться между несколькими программами для создания разных частей состав­ного документа, вы работаете непосредственно в самом документе. Когда потребуется изменить или отредактировать объект, созданный в другом приложении, библиотеки OLE сами вызовут это приложение.

Предположим, что для редактирования квартального отчета вы исполь­зуете Word и хотите изменить информацию в таблице Excel, встроенной в отчет. Когда происходит активизация таблицы путем двойного щелчка на ней, библиотеки OLE автоматически запускают программу Excel и загружают в нее таблицу. При этом Excel интегрирует свое меню, панель инструментов и строку состояния в пользовательский интерфейс Word. Этот процесс называется согласованием. Создается впечатление, что вы полу­чаете доступ к функциям Excel, не выходя из Word.

Каким образом таблица отображается в текстовом редакторе, когда он запускается первый раз? Составной документ (документ Word), содержащий таблицу Excel хранит представление объекта таблицы в виде метафайла. При вставке таблицы в составной документ или связывании с ним Excel передает Word представле­ние таблицы в виде метафайла. То, что вы видите при загрузке Документа Word, содержащего таблицу Excel, — это картинка. Если таблица ни разу не активизируется, то программа Excel не будет загружена в память.

Следует отметить, что если после внедрения объекта приложение-источник будет удалено, непосредственная активизация работать не сможет.

Так как технология OLE является наиболее популярной и используемой на данный момент, то рассматриваемые примеры встраивания и связывания относятся именно к ней. Для рядового пользователя программные продукты компании Microsoft стали своеобразным стандартом, поэтому целесообразным было бы проследить применение OLE в пакете Office.

В программах пакета Office широко используются две функции OLE, которые ориентированны на пользователей, не являющихся программистами, — Связывание и Внедрение.

Глава 4.1. Связывание

Главное Меню ? Правка ? Специальная вставка., Главное Меню ? Правка ? Связи.

Любой объект также можно связать и вставить в виде значка, при этом он будет выполнять роль ссылки, которая выполняется щелчком по значку.

Таблица Excel ? Документ Word. Итак, мы скопировали таблицу Excel в буфер обмена и открыли окно специальной вставки (Рис. 4.1.).

В этом окне можно увидеть источник связываемых данных, и убедившись в том, что он является верным, необходимо установить переключатель Связать. Далее выберем формат связываемых данных, то есть, в каком виде они будут представлены в документе приемнике. Рассмотрим два примера:

Главное меню правка специальная вставка  1

Рис. 4.1.

В первом случае в документ Word будет вставлен объект, визуально представленный таблицей идентичной таблице Excel. Однако редактировать эту таблицу средствами текстового процессора не представляется возможным. Двойным щелчком по данной таблице можно вызвать документ источник и произвести изменения там.

В случае вставки в редактор текста в формате RTF, документ пополнится обычной таблицей Word. Изменения в ней производятся посредством текстового процессора. Для отмены изменений можно воспользоваться командой Обновить связь.

Слайд PowerPoint ? Документ Word. Для создания такой связи сначала необходимо проделать такой же стандартный порядок действий, как и в прошлом примере. Скопируем отдельный слайд и вставим его с помощью связывания. В качестве формата данных выбрать Слайд PowerPoint (объект).

Вставленный объект будет очень похожим на рисунок Word. Двойным щелчком по вставленному объекту можно вызвать приложение с документом источником.

Глава 4.2. Внедрение

При внедрении необходимо также поместить в буфер обмена данные из документа источника. Затем открыть окно специальной вставки.

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

Таблица Excel ? Документ Word. Скопируем таблицу в буфер обмена (clipboard) и вызовем окно специальной вставки. Выставим переключатель Вставить и выберем формат данных как Лист Microsoft Excel (объект).

На первый взгляд, внедренный объект ни чем не отличается от таблицы вставленной с помощью связывания. Однако если дважды щелкнуть по этой таблице, приложение источник запускаться не будет, как при связывании, а будет использована функция непосредственной активизации OLE.

Объект презентация ? Показать., Заключение

С точки зрения пользователя, не сведущего в подробностях объектно-ориентированного программирования, наиболее удобной и функционально полной схемой совместного использования документов является OLE. Её достоинства заключаются в следующем: во-первых, эта технология вобрала в себя лучшие возможности её предшественников, во-вторых, OLE сама по себе принесла много нового в мир информационных технологий, в-третьих, она удобна и проста в эксплуатации.

В силу того, что OLE разработана компанией Microsoft, использование этого метода в пакете Office становится более комфортным. Так как каждое приложение Office предполагает применения OLE, то разработчики программного обеспечения интегрировали простую схему её использования в эти продукты. Таким образом, любой пользователь не знающий особенностей внутренней работы OLE может связать или внедрить объект в документ.

Появление OLE и подобных ей методов (COM, CORBA) сыграло важную роль в продвижении информационных технологий. Данные схемы нашли широкое применение в WEB-конструкциях. Так для эффективного употребления WEB-приложений в Интернете очень часто применяются технологии совместного использования. Подобные технологии также эффективно используются в компьютерных сетях с применением архитектуры клиент-сервер.

Литература

[Электронный ресурс]//URL: https://inzhpro.ru/kursovaya/ole-tehnologii/

  1. Пьюполо 1997 – Пьюполо Джон. OLE: создание элементов управления. – Киев.: BHV, 1997.

  2. Буч 1998 – Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд. – М.: Бином 1998.

  3. Вендров 2000 – Вендров А.М. Проектирование программного обеспечения экономических информационных систем. – М.: Финансы и статистика, 2000.

  4. Гамма, Хелм, Джонсон, Влиссидес 2001 – Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного программирования. – СПб.: Питер, 2001.

  5. Кулаичев 1999 – Кулаичев А.П. Методы и средства анализа данных в среде Windows. – М.: Информатика и компьютеры, 1999.

  6. Терехов, Туньон 1999 – Терехов А.А., Туньон В. Современные модели качества программного обеспечения. BYTE/Россия. №12, 1999.

  7. Шлеер, Меллор 1993 – Шлеер С., Меллор С. Объектно-ориентированный анализ: моделирование мира в состояниях. – Киев: Диалектика, 1993.

  8. Одинцов 2002 – Одинцов И.О. Профессиональное программирование. Системный подход. – СПб.:BHV-Петербург, 2002.

  9. Ботт 1998 – Ботт Эд. Microsoft Office. – М.: Бином, 1998.

  10. Корнеев 1999 – Корнеев В.В. Параллельные вычислительные системы. – М.: Нолидж. 1999.

Термин
OLE (Object
Linking
and
Embedding)
– связывание и внедрение объектов.
Технология OLE позволяет редактировать
данные одного приложения в другом или
переносить их в другое приложение.
Основное отличие между связанными и
внедренными объектами заключается в
месте их хранения, а также способе
обновления данных при их помещении в
конечный файл.

Благодаря
OLE, можно встроить таблицу Excel
в документ Word,
и наоборот, и так далее (список возможных
типов объектов находится в группе команд
Текст
на
вкладке
Вставка
),
вид которой приведен на рисунке 7.2.

Рисунок
7.2 – Окно диалога вставки объекта

Приложения,
поддерживающие технологию OLE, позволяют
пользователю вызывать одно приложение
из другого, не выходя из контекста
интерфейса исходной программы.
Используются принципиальные понятия
OLE-объект и OLE-контейнер. OLE-контейнер
может принимать один или несколько
объектов. Объекты – это файлы, передаваемые
в контейнер.

Каждый
объект имеет два различных вида данных:
данные представления (Presentation
Data,
PD) и естественные данные (Native
Data,
ND). Данные представления служат для
представления информации в том виде,
как она отображается в оригинальном
приложении. Например, таблица Excel
представлена в табличной форме.
Естественные данные ‑ это собственно
информация, содержимое таблицы.

Пример.

Пример

Объект
PaintBrush

3. Вставка данных

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

4. Dde технология

Термин
Dynamic Data Exchange означает протокол динамического
обмена данными. Эта технология обеспечивает
доступ к данным через динамически
действующие каналы, устанавливающие
связь между приложением, принимающим
данные (клиентом), и источником данных
(сервером).

Пример.

База
данных Microsoft Access или таблица Microsoft Excel
может быть сервером для приложения
Microsoft Word (клиентом), принимающего данные
по каналу связи DDE. Примером динамического
обмена данными может служить слияние
данных в Word.

7. 2. Объекты в документе Word. Определения

Объект
в документе, это некая сущность, которая
поставляет в документ данные, созданные
в другом приложении.

Примеры объектов:

1)
объекты, созданные в других приложениях
(рисунки, фотографии, электронные
таблицы, объекты WordArt и так далее,

2)
файлы, содержащие информацию, которая
должна быть доступна внутри документа,

3) и некоторые
другие.

Можно
утверждать, что документ Word
может являться клиентом – приемником
данных (контейнером для их размещения
и хранения). Внешние данные для документа
(серверное приложение) будут представлены
как объекты, и могут быть:

а)
добавлены из файла (если они есть на
момент работы с документом);

б)
созданы динамически при работе с
документом.

Связанный объект
– объект, созданный в файле-источнике
и вставленный в файл назначения с
поддержанием связи между этими двумя
файлами. Связанный объект в файле
назначения может быть обновлен при
обновлении файла-источника.

Внедренный объект
– объект, данные, которого, содержащиеся
в файле-источнике, вставлены в файл
назначения в виде объекта. После внедрения
объект становится частью файла назначения.
Изменения, вносимые во внедренный
объект, не отражаются в файле назначения.

1. – Внедренный
объект.

2. – Связанный
объект

3. –
Исходный файл

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Like this post? Please share to your friends:
  • Ole objects in word
  • Ole objects in excel
  • Ole links in word
  • Ole link in word
  • Ole idispatch exception code 0 from microsoft excel