- •Укладач Чемолосова а.В.
- •Лекція 18. Створення компонентів під час виконання програми
- •Основі дії при створенні компонентів
- •Створення візуальних компонентів
- •Призначення обробників подій
- •Використання масивів компонентів
- •Лекція 19. Меню та панелі в стилі xp
- •Лекція 29. Сервери автоматизації
- •Створення та використання екземплярів серверів автоматизації
- •Лекція 21. Експорт інформації в ms Word
- •Експорт інформації в Microsoft Word
- •Запуск сервера
- •Взаємодія з сервером на рівні документу
- •Безпосереднє виведення інформації. Об’єкт Selection
- •Форматування тестової інформації
- •Керування додатком Microsoft Word
- •Лекція 22. Експорт інформації в ms Excel
- •Керування сервером автоматизації Excel
- •Керування документами Excel
- •Адресація елементів документу на робочому аркуші
- •Виведення інформації в клітинки робочого аркуша
Експорт інформації в Microsoft Word
Для експорту інформації в Microsoft Word з використанням сервера автоматизації слід:
Створити екземпляр сервера автоматизації «Word.Application» (запустити Word) або отримати посилання на вже запущений екземпляр.
Створити новий документ.
Вивести інформацію в створений документ.
Знищити структури, пов’язані з екземпляром сервера автоматизації в програмі, а також посилання на елементи його об’єктної ієрархії.
Запуск сервера
Створення та отримання посилання на екземпляр сервера автоматизації виконується за допомогою функцій CreateOleObject або GetActiveOleObject відповідно. Створення нового об’єкта необхідно, якщо сервер автоматизації ще не запущений, а отримання посилання на запущений сервер суттєво прискорює процес експорту інформації, оскільки системі не потрібно запускати ще один додаток. Таким чином, в деяких випадках доцільно спочатку спробувати підключитися до працюючого серверу, а в разі невдачі запустити сервер самостійно:
…………….…………….
Var WordApp: Variant;
…………….…………….
Try
//Спроба отримати посилання на Word, який вже запущений
WordApp:= GetActiveOleObject(‘Word.Application’);
Except
// Word не запущений
Try
//Спроба запустити Word
WordApp:= CreateOleObject(‘Word.Application’);
Except
Application.MessageBox(‘Microsoft Word не встановлений’);
Exit;
End;
End;
//Посилання отримане тим чи іншим чином.
// Можна розпочинати процес виведення інформації
Try
//Вивід інформації
Finally
//знищення програмних структур, створених для взаємодії з сервером
WordApp:=Unassigned;
End;
…………………………………
Взаємодія з сервером на рівні документу
Для взаємодії з сервером слід додати елемент в сімейство Documents об’єкта ‘Word.Application’ за допомогою функції Add, яка поверне посилання на створений документ:
Add(Template: string; NewTemplate: Boolean): Document;
Рядковий параметр Template визначає, на основі якого шаблону повинен бути створений документ, а параметр NewTemplate вказує на те, що створюваний документ сам повинен бути шаблоном. Якщо метод викликається баз параметрів, то новий документ створюється на основі шаблону Normal («звичайний»).
Посилання на створений документ, яке повертає метод Add, слід зберігати в змінній типу Variant для подальшого доступу до документу з метою виведення інформації в нього:
…………………………..
Var WordDoc: Variant;
…………………………..
WordDoc:=WordApp.Documents.Add;
……………………………
Закрити документ після завершення виводу інформації в нього можна за допомогою методу Close:
……………………
WordDoc.Close;
WordDoc:=Unassigned;
…………………………
Безпосереднє виведення інформації. Об’єкт Selection
Виведення інформації в Microsoft Word аналогічний роботі користувача в редакторі і деяким чином емалює його. Так, за допомогою об’єкту Selection, що відображає поточне виділення в документі, підтримуються команди введення тексту та настройки його параметрів. Якщо явне виділення відсутнє, то об’єкт Selection відображає місце розташування текстового курсору. Слід мати на увазі, що об’єкт Selection належить об’єкту «Word.Application», а не об’єкту Document.
Для виведення інформації в об’єкт Selection використовується його метод TypeText:
WordApp.Selection.TypeText(Text: string);
Для введення символу переведення рядку можна використати метод TypeParagraph об’єкта Selection:
WordApp.Selection.TypeParagraph;
При послідовному виведенні інформації зміна автоматично встановленого виділення зазвичай непотрібне. Однак, якщо виникає така необхідність, можна встановити параметри виділення за допомогою методів Move, MoveRight (змістити виділення вправо), MoveLeft (змістити виділення вліво):
Move(Unit: integer; count: integer);
MoveRight(Unit: integer; count: integer; Extend: Boolean=false);
MoveLeft(Unit: integer; count: integer; Extend: Boolean=false);
Методи зсувають виділення на задану параметром count кількість одиниць. Значення параметру може бути додатнім або від’ємним. У випадку методу Move знак параметра count визначає напрямок зміщення виділення. Від’ємне значення параметра вказує на зміщення вліво, а додатне – вправою.
Методи MoveRight та MoveLeft початково налаштовані на зміщення виділення в задану сторону (вправо та вліво відповідно), тому від’ємне значення параметру count просто змінює напрямок виділення.
При використанні цих методів виділення, якщо воно існувало до їх виклику, знімається. Цьому можна запобігти в функціях MoveRight та MoveLeft, якщо в якості значення необов’язкового параметру Extend задати значення true (за замовчуванням встановлюється false).
Параметр Unit визначає одиницю зміщення виділення і може приймати наступні значення: 1 – один символ; 2 – одне слово; 3 – одне речення; 4 – один абзац; 5 – один рядок; 9 – один стовпчик таблиці, якщо виділення знаходиться в таблиці; 10 – один рядок таблиці, якщо виділення знаходиться в таблиці; 12 – одна клітинка таблиці, якщо виділення знаходиться в таблиці.
І, нарешті, щоб просто скасувати виділення, не змінюючи його початкового положення, можна скористатись методом Collapse об’єкту Selection:
Word.Selection.Collapse;