Если на главную форму выкладываем компоненту с закладки Servers, которая называется, например WordApplication, то при запуске приложения запустится сервер автоматизации Microsoft Word, этот факт можно обнаружить, запустив на выполнение Task Manager и выбрав закладку Processes. Среди прочих процессов мы обнаруживаем WINWORD.EXE. При этом выполняются следующие действия:
При создании формы, в системном реестре, по идентификатору CLSID был найден сервер Word.Application
Запущено на выполнение приложение, находящееся по адресу в реестре (ProgID)
Сервер предоставил нашему приложению, которое и является контроллером автоматизации интерфейс, через который мы и получим доступ к объекту Application.
Практически всегда при работе с сервером Word вам приходится иметь дело сосвойством Documents.Это свойство представляет собой собрание всех документов, открытых в Word в данный момент. Каждый документ представлен в этом собрании как объект Document,имеющий в свою очередь собственные свойства и методы. Общее число открытых документов определяется свойством Countсобрания документов Documents.
При вызове из Delphi любого метода сервера СОМ аргументы (кроме аргументов типа Text) передаются только как объекты типа OleVariant.Если какие-то аргументы не являются обязательными, то все равно они должны фигурировать в вызове метода. Только вместо их значений может быть указана EmptyParam—переменная типа OleVariant,используемая вместо необязательных параметров. Эта переменная объявлена в модулях System и OleCtrls. Таким образом, если вы хотите создать новый документ на основе обычного шаблона, вы можете записать оператор:
Важным свойством сервера Word является свойство Selection,являющееся
ссылкой на объект Selection— выделенный фрагмент текста в активном документе или, если нет выделения, то просто текущая позиция курсора в активном документе. Этот объект имеет методы InsertBefore и Insert After,аргументом в которые передается текст, вставляемый в активный документ соответственно до или после объекта Selection.
Сохранение активного документа в файле с заданным именем можно осуществить методом SaveAs класса Document, передавая в него как аргумент типа OleVariantимя файла с путем к нему. Если путь отсутствует, то файл сохраняется в текущем каталоге.