русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Робота з COM-сервером Microsoft Word


Дата додавання: 2014-10-07; переглядів: 907.


Функція, що реалізує механізм доступу до COM-об'єкту, перебуває в модулі Comobj, який повинен бути підключений у коді.

Потім потрібно описати змінну (краще глобальну) для зберігання посилання на сервер у вигляді:

var w:variant;

Після опису змінної можна створити новий об'єкт COM-сервера за допомогою команди:

w:=createoleobject('word.application');

Після виконання цього оператора додаток Word запуститься, але його вікно не відобразиться на екрані монітора. У диспетчері завдань у списку процесів можна побачити, що процес Winword.exe запущений і знаходиться в пам'яті комп'ютера.

Щоб вікно програми стало видимим необхідно встановити наступну властивість:

w.visible:=true;

При формуванні документів властивість Visible краще встановити в значення True тільки для відображення повністю створених документів. Так можна скоротити час створення звітів і підвищити продуктивність роботи додатків.

Запуск або підключення до Word

 

Ми розглянули приклад створення нового об'єкта для запуску копії Microsoft Word. Однак такий підхід має недолік: якщо Word уже буде запущений користувачем, то виклик функції createoleobject('word.application') запустить нову копію програми, що веде до нераціональної витрати пам'яті комп'ютера. Для вирішення даної проблеми потрібно мати на увазі, що є функція, яка не створює об'єкт, а підключається до вже існуючого:

w:=getactiveoleobject('word.application');

Перед використання COM-сервера Word доцільно виконувати створення об'єкта або підключення до об'єкта залежно від стану програми Word. Правильний підхід при звертанні до Word наступний:

try

//підключаємося до Word

w:=getactiveoleobject('word.application');

except

//якщо підключення не вдалося (Word не запущений)

//створюємо новий об'єкт, запускаючи Word

w:=createoleobject('word.application');

end;

Зазначений код за замовчуванням коректно працює тільки при запуску exe файлу програми. При запуску проекту буде видаватися помилка.

Для роботи коду під час запуску проекту потрібно виконати настроювання Delphi: виконайте команду Tools-Debugger Options, на закладці Language Exception зніміть прапорець Stop On Delphi Exception. Зверніть увагу, що залишати дане настроювання виключеним не рекомендується, тому що поле цього Delphi не буде видавати інформативних повідомлень про помилки при невірній роботі програм.


 


<== попередня лекція | наступна лекція ==>
Загальні принципи технології COM | Робота з документами в Microsoft Word


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн