Дослідження об’єктної моделі та методів створення контролерів автоматизації MS Office
Розробка гнучкої довідкової системи, яка дозволяє наочно проілюструвати можливості управління додатками MS Office за допомогою програм, створених у середовищі Delphi. Система базується на використанні технології COM і об'єктних моделей MS Word і MS Excel.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 25.10.2012 |
Размер файла | 2,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Міністерство освіти та науки України
Криворізький інститут
Кременчуцького університету економіки, інформаційних технологій та управління
Кафедра Технічної кібернетики
ДИПЛОМНА РОБОТА
зі спеціальності
7.091402 “Гнучкі комп'ютеризовані системи та робототехніка“
ПОЯСНЮВАЛЬНА ЗАПИСКА
«Дослідження об'єктної моделі та методів створення контролерів автоматизації MS Office»
Студента групи ГКС-04-д Середюк Марини Едуардівни
Керівник роботи проф., к.т.н. Корнілов Георгій Іванович
Кривий Ріг
2009
Анотація
контролер автоматизація оffice delphi
Метою дипломної роботи є створення системи, яка дозволяє наочно проілюструвати можливості управління додатками MS Office за допомогою програм, створених у середовищі Delphi. Система базується на використанні технології COM і об'єктних моделей MS Word і MS Excel.
Розроблена система може використовуватися студентами в якості лабораторного практикуму при вивченні мови програмування Delphi.
Аннотация
Целью дипломной работы является создание системы, позволяющей наглядно проиллюстрировать возможности управления приложениями MS Office с помощью программ, написанных в среде Delphi. Система базируется на использовании технологии СОМ и объектных моделей MS Word и MS Excel.
Разработанная система может использоваться студентами в качестве лабораторного практикума при изучении языка программирования Delphi.
The summary
The purpose of this diploma work is development of the system which allows for evidently illustrating possibilities of management of system MS Office by the programs, written in the Delphi. The system is based on the use of COM technology and objective models of MS Word and MS Excel.
The developed system can be used students as laboratory practical work at the study of programming of Delphi language.
ЗМІСТ
- ВСТУП
- 1. ПОСТАНОВКА ЗАВДАННЯ
- 1.1 Найменування та галузь використання
- 1.2 Підстава для створення
- 1.3 Характеристика розробленого програмного забезпечення
- 1.4 Мета й призначення
- 1.5 Загальні вимоги до розробки
- 1.6 Джерела розробки
- 2. ОСНОВИ ТЕХНОЛОГІЇ COM
- 2.1 Загальні принципи СОМ-технології
- 2.2 Розвиток СОМ-технологій
- 2.3. Склад СОМ-додатку
- 2.3.1 СОМ-інтерфейс
- 2.3.2 СОМ-сервери
- 2.3.3 СОМ-клієнти
- 3. ТЕОРЕТИЧНЕ ДОСЛІДЖЕННЯ ОБ'ЄКТНИХ МОДЕЛЕЙ MS OFFICE
- 3.1 Об'єктна модель MS Word
- 3.2 Об'єктна модель MS Excel
- 4. ОСНОВИ ПРОГРАМУВАННЯ ДОДАТКІВ MS OFFICE В DELPHI
- 4.1 Загальні принципи створення контролерів автоматизації MS Office
- 4.2. Принципи створення контролерів автоматизації додатку MS Word
- 4.2.1 Робота з об'єктом Word.Application
- 4.2.2 Створення таблиць і робота з ними
- 4.2.3 Настройка параметрів сторінки і друк документа
- 4.2.4 Елементи управління додатку MS Word
- 4.3. Принципи створення контролерів автоматизації MS Excel
- 4.3.1 Створення об'єкту Excel.Application, запуск і візуалізація вікна додатку
- 4.3.2 Робота з аркушами робочої книги
- 4.3.3 Робота з комірками
- 4.3.4 Пошук і заміна тексту
- 4.3.5 Формули
- 4.3.6 Діаграми
- 5. ПРОГРАМНА РЕАЛІЗАЦІЯ І ОПИС ФУНКЦІОНАЛЬНИХ МОЖЛИВОСТЕЙ ПРОЕКТОВАНОЇ СИСТЕМИ
- 5.1 Функціональне призначення та технологічні особливості розробки
- 5.2 Розробка логіко-функціональної схеми системи
- 5.3 Опис інтерфейсу користувача
- 5.4. Програмна реалізація та опис основних процедур і функцій розробленої системи
- 5.4.1 Настройка сторінки і друк документа MS Word
- 5.4.2 Робота з таблицями документу
- 5.4.3 Робота з панелями управління додатку Word
- 5.4.4 Робота з книгами і аркушами додатку Excel
- 5.4.5 Форматування комірок
- 5.4.6 Робота з формулами і діаграмами
- 6. ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОЗРОБКИ ПРОГРАМНОГО ПРОДУКТУ
- 6.1 Визначення витрат на створення програмного продукту
- 6.2 Витрати, пов'язані з розробкою програми на ПК
- 7. ОХОРОНА ПРАЦІ
- 7.1 Аналіз небезпечних та шкідливих факторів на робочому місці оператора ПК
- 7.2 Заходи щодо нормалізації шкідливих та небезпечних факторів на робочому місці оператора ПК
- 7.3 Пожежна безпека
- ВИСНОВКИ
- СПИСОК ЛІТЕРАТУРИ
ВСТУП
Delphi - одна з наймогутніших систем, що дозволяють на найсучаснішому рівні створювати як окремі прикладні програми, так і розгалужені програмні комплекси, призначені для роботи в корпоративних мережах і в Інтернет.
Про Delphi говорять як про середовище швидкого створення програм. Це технологія візуального програмування, яка дозволила звести проектування призначеного для користувача інтерфейсу до простих і наочних процедур. Для завдання яких-небудь властивостей елементу системи зовсім не обов'язково писати масивні текстові рядки, досить змінити цю властивість в інспекторі об'єктів (так званому моніторі властивостей вибраного елементу). Ця зміна автоматично доповнить або модифікує програмний код.
Це великий плюс у візуальній технології програмування. Створюючи або модифікуючи свій програмний продукт, користувач не знаючи або не звертаючи уваги на деякі властивості елементу програми, а, використовуючи тільки необхідні, пише повністю готовий робочий продукт, який іноді виступає на рівних по складності, з написаними в невізуальному редакторі.
У даній роботі були досліджені можливості контролерів автоматизації MS Office. Відомо, що при створенні додатків розробка інтерфейсу користувача вимагає великих витрат часу, особливого підходу, досвіду і знань. Тому найбільш оптимальним підходом є використання існуючих інструментів побудови інтерфейсу, які є загальновідомими і загальнодоступними. Такими інструментами можуть служити програмні продукти компанії Microsoft, зокрема MS Office. Використання додатків MS Office як елементів інтерфейсу має наступні переваги:
· Додатки MS Office увібрали в себе багатий досвід взаємодії користувача персонального комп'ютера і програмного продукту і є універсальними інструментами, які можуть бути інтегровані в додатки, що створюються в різних середовищах розробки;
· Переважна більшість користувачів володіють навиками роботи в MS Word і MS Excel;
· Багато бухгалтерських і правових систем володіють великими наборами різних шаблонів документів, які можна використовувати при проектуванні власних додатків;
· Документи MS Word і MS Excel, як і додатки MS Word і MS Excel, мають чіткі об'єктні моделі і можуть управлятися як внутрішніми, так і зовнішніми програмами.
Ці факти служать аргументами на користь того, щоб використовувати дані продукти як універсальний інтерфейс для програмних продуктів, що розробляються.
Delphi - один з найбільш популярних і ефективних інструментів розробки додатків, і можливість інтегрувати засоби MS Office в проекти, що розробляються в цьому середовищі, - безперечний тому доказ.
1. ПОСТАНОВКА ЗАВДАННЯ
1.1 Найменування та галузь використання
Найменування розробки: Гнучка довідкова система дослідження методів створення контролерів автоматизації додатків MS Office. Дана розробка може бути застосована в якості лабораторного практикуму при вивчені мови програмування Delphi.
1.2 Підстава для створення
Підставою для розробки є наказ № 62С-01 від 29 жовтня 2008 р. по Криворізькому інституту КУЕІТУ.
Початок робіт: 31.10.08. Закінчення робіт: 01.06.09.
1.3 Характеристика розробленого програмного забезпечення
Розроблена система реалізована в середовищі Delphi 6.0. та базується на використанні технології COM і об'єктних моделей MS Word і MS Excel.
До складу системи входять:
· Delphi&MS_Office.exe - виконавчий файл розробленої системи;
· databaze.mdb - файл, що містить таблиці баз даних, що використовуються в якості ілюстраціїї експорту даних в MS Word і MS Excel;
· електронний підручник в форматі html, якій містить опис об'єктних моделей MS Word і MS Excel, структури колекцій, методів та властивостей.
· шаблони документів.
1.4 Мета й призначення
Метою даної дипломної роботи є розробка система, яка наглядно ілюструє можливості управління MS Word і MS Excel за допомогою зовнішніх додатків.
1.5 Загальні вимоги до розробки
Вимоги до програмного забезпечення:
· Робота в середовищі операційних систем Windows 2000/XP;
· Простота й зрозумілість інтерфейсу.
· Мінімальні вимоги до апаратного забезпечення:
IBM-сумісний комп'ютер, не нижче Pentium IІ, RAM-128Mb, SVGA-800*600*16bit;
· Вільний простір на жорсткому диску не менш 5Мб;
· Додаткове програмне забезпечення: інсталяція пакету MS Office.
1.6 Джерела розробки
Джерелами розробки дипломної роботи є:
· довідкова література;
· наукова література;
· технічна література;
· програмна документація.
2. ОСНОВИ ТЕХНОЛОГІЇ COM
2.1 Загальні принципи СОМ-технології
COM (Component Object Model) - це об'єктна модель компонентів. Дана технологія є базовою для технологій ActiveX і OLE. Технології OLE і ActiveX - всього лише надбудови над даною технологією. В якості прикладу можна навести об'єкт TObject, як базовий об'єкт VCL Delphi. Так само технологія СОМ є базовою по відношенню до OLE і ActiveX.
Технологія СОМ застосовується при описі API і двійкового стандарту для зв'язку об'єктів різних мов і середовищ програмування. СОМ надає модель взаємодії між компонентами і додатками. Технологія СОМ працює з так званими СОМ-об'єктами. СОМ-об'єкти схожі на звичайні об'єкти візуальної бібліотеки компонентів Delphi. На відміну від об'єктів VCL Delphi, СОМ-об'єкти містять властивості, методи і інтерфейси. Звичайний СОМ-об'єкт включає один або декілька інтерфейсів. Кожний з цих інтерфейсів має власний покажчик.
Технологія СОМ має два явні плюси:
- створення СОМ-об'єктів не залежить від мови програмування. Таким чином, СОМ-об'єкти можуть бути написані на різних мовах;
- СОМ-об'єкти можуть бути використані в будь-якому середовищі програмування під Windows. До числа цих середовищ входять Delphi, Visual C++, C++Builder, Visual Basic, і багато інших.
Всі СОМ-об'єкти зазвичай містяться у файлах з розширенням DLL або OCX. Один такий файл може містити як одиночний СОМ-об'єкт, так і декілька СОМ-об'єктів. Ключовим аспектом технології СОМ є можливість надання зв'язку і взаємодії між компонентами і додатками, а також реалізація клієнт-серверних взаємодій за допомогою інтерфейсів. Технологія СОМ реалізується за допомогою СОМ-бібліотек (до числа яких входять такі файли операційної системи, як OLE32.DLL і OLE-Aut32.DLL). СОМ-бібліотеки містять набір стандартних інтерфейсів, які забезпечують функціональність СОМ-об'єкту, а також невеликий набір функцій API, що відповідають за створення і управління СОМ-об'єктів. В Delphi реалізація і підтримка технології СОМ називається каркасом Delphi ActiveX (Delphi ActiveX framework, DAX). Реалізація DAX описана в модулі Axctris.
2.2 Розвиток СОМ-технологій
Однією з найважливіших задач, які ставила перед собою фірма Microsoft, коли просувала операційну систему Windows, була задача по забезпеченню ефективної взаємодії між різними програмами, що працюють в Windows. Найпершими спробами вирішити цю непросту задачу були буфер обміну, файли, що розділяються, і технологія динамічного обміну даними (Dynamic Data Exchange, DDE). Після цього була розроблена технологія зв'язування і запровадження об'єктів (Object Linking and Embedding, OLE). Перша версія OLE 1 призначалася для створення складних документів. Ця версія була визнана недосконалою і на зміну їй прийшла версія OLE 2. Нова версія дозволяла вирішити питання надання один одному різними програмами власних функцій. Дана технологія активно впроваджувалася до 1996 року, після чого їй на зміну прийшла технологія ActiveX, яка включає автоматизацію (OLE-автоматизацію), контейнери, управляючі елементи, Web-технологію і т.д.
2.3. Склад СОМ-додатку
При створенні СОМ-додатку необхідно забезпечити наступне:
· СОМ-інтерфейс;
· СОМ-сервер;
· СОМ-клієнт.
Розглянемо ці три складові СОМ-додатку.
2.3.1 СОМ-інтерфейс
Клієнти СОМ зв'язуються з об'єктами за допомогою СОМ-інтерфейсів. Інтерфейси - це групи логічно або семантично зв'язаних процедур, які забезпечують зв'язок між постачальником послуги (сервером) і його клієнтом. На рис. 2.1 схематично зображено стандартний СОМ-інтерфейс.
Рис. 2.1 СОМ-інтерфейс
Ключовими аспектами СОМ-інтерфейсів є:
· Одного разу визначені, інтерфейси не можуть бути змінені. Таким чином, на один інтерфейс можна покласти певний набір функцій. Додаткова функціональність реалізовується за допомогою додаткових інтерфейсів.
· За взаємною домовленістю, всі імена інтерфейсів починаються з букви I, наприклад IРersist, IМalloc.
· Кожен інтерфейс гарантовано має свій унікальний ідентифікатор, який називається глобальним унікальним ідентифікатором (Globally Unique Identifier, GUID). Унікальні ідентифікатори інтерфейсів називають ідентифікаторами інтерфейсів (Interface Identifiers, IIDs). Ці ідентифікатори забезпечують усунення конфліктів імен різних версій додатку або різних додатків.
· Інтерфеси не залежать від мови програмування. Для реалізації СОМ-інтерфейсу можна скористатися будь-якою мовою програмування. Мова програмування повинна підтримувати структуру покажчиків, а також мати можливість виклику функції за допомогою покажчика явно або неявно.
· Інтерфейси не є самостійними об'єктами, вони лише забезпечують доступ до об'єктів. Таким чином, клієнти не можуть безпосередньо звертатися до даних, доступ здійснюється за допомогою покажчиків інтерфейсів.
· Всі інтерфейси завжди є потомками базового інтерфейсу IUnknown.
Базовий СОМ-інтерфейс IUnknown
Базовий інтерфейс IUnknown забезпечує механізм обліку посилань (лічильник посилань на СОМ-об'єкт). При передачі покажчика на інтерфейс виконується метод інтерфейсу ІUnknown AddRef. Після закінчення роботи з інтерфейсом додаток-клієнт викликає метод Release, який зменшує лічильник посилань.
Під час виклику методу Querylnterface інтерфейсу ІUnknown в метод передається параметр IID, який має тип TGUID, тобто ідентифікатор інтерфейсу. Параметр методу out повертає або посилання на інтерфейс, що запрошувався, або значення NH.
Покажчики СОМ-інтерфейсу
Покажчик інтерфейсу - це 32-бітовий покажчик на екземпляр об'єкту, який є, у свою чергу, покажчиком на реалізацію кожного методу інтерфейсу. Реалізація методів доступна через масив покажчиків на ці методи, який називається vtable. Використання масиву vtable схоже на механізм підтримки віртуальних функцій в Object Pascal.
Рис. 2.2 Схема роботи покажчика СОМ-інтерфейсу
2.3.2 СОМ-сервери
СОМ-сервер є додатком або бібліотекою, яка надає послуги додатку-клієнту або бібліотеці. СОМ-сервер містить один або більше СОМ-об'єктів, де СОМ-об'єкти виступають як набори властивостей, методів і інтерфейсів.
Клієнти не знають як СОМ-об'єкт виконує свої дії. СОМ-об'єкт надає свої послуги за допомогою інтерфейсів. Крім того, додатку-клієнту не потрібно знати, де знаходиться СОМ-об'єкт. Технологія СОМ забезпечує прозорий доступ незалежно від місцезнаходження СОМ-об'єкту.
Коли клієнт запрошує послугу від СОМ-об'єкту, він передає СОМ-об'єкту ідентифікатор класу (CLSID). CLSID - всього лише GUID, який застосовується при зверненні до СОМ-об'єкту. Після передачі CLSID, СОМ-сервер повинен забезпечити так звану фабрику класу, яка створює екземпляри СОМ-об'єктів.
СОМ-сервер повинен виконувати наступне:
· реєструвати дані в системному реєстрі Windows для зв'язування модуля серверу з ідентифікатором класу (CLSID);
· надавати фабрику СОМ-класу, що створює екземпляри СОМ-об'єктів;
· забезпечувати механізм, який вивантажує з пам'яті сервери СОМ, які у даний момент часу не надають послуг клієнтам.
Фабрика класу
СОМ-об'єкти є екземплярами СoСlass. CoСlass - це клас, що підтримує один або більш інтерфейсів. СОМ-об'єкти можуть надавати тільки ті послуги, які визначені в інтерфейсах СoСlass. Екземпляри CoСlass створюються за допомогою спеціального типу об'єкта, який називається фабрика класу.
Фабрика класу - це спеціальний СОМ-об'єкт, який підтримує інтерфейс IСlassFactory і відповідає за створення екземплярів того класу, з яким асоційована дана фабрика класу.
Інтерфейс IСlassFactory має два методи:
· Createlnstance, який створює екземпляр СОМ-об'єкта, асоційованої фабрики класу
· LockServe, який застосовується для зберігання СОМ-сервера в пам'яті. Якщо параметр метода fLock має значення true, то лічильник посилань сервера збільшується, в іншому випадку - зменшується. Коли лічильник досягає значення 0, сервер вивантажується з пам'яті.
Кожного разу, коли послуги СОМ-об'єкта запрошуються клієнтом, фабрика класу створює і реєструє екземпляр об'єкту для конкретного користувача. Якщо послуга того ж СОМ-об'єкту запрошує інший клієнт, фабрика класу створює другий екземпляр об'єкту для обслуговування другого клієнта. СoСlass повинен мати фабрику класу і ідентифікатор класу CLSID. Використання CLSID для СoClass має на увазі, що вони можуть бути відкоректовані кожного разу, коли в клас вводяться нові інтерфейси. Таким чином, на відміну від DLL, нові інтерфейси можуть змінювати або додавати методи, не впливаючи на старі версії.
Локальні і вилучені сервери
З використанням СОМ клієнт не повинен турбуватися про те, де розташовується об'єкт, він просто робить виклик інтерфейсу даного об'єкту. Технологія СОМ забезпечує всі необхідні кроки для того, щоб зробити цей виклик. Кроки можуть відрізнятися, залежно від місцезнаходження об'єкту. Об'єкт може знаходитися в тому ж процесі, де і клієнт, в іншому процесі на тому ж комп'ютері, де розташований клієнт, або на іншому комп'ютері в мережі. Залежно від цього застосовуються різні типи серверів:
· внутрішній сервер (In-process server);
· локальний сервер (Local server);
· видалений сервер (Remote server).
Внутрішній сервер - це бібліотека DLL, яка запущена в одному процесі разом з клієнтом. Додаток-клієнт зв'язується з сервером усередині процесу за допомогою прямих викликів СОМ-інтерфейсу. На рис. 2.3. представлена схема взаємодії клієнта з внутрішнім сервером.
Рис. 2.3 Схема взаємодії клієнта с внутрішнім сервером
Локальний сервер - це додаток ЕХЕ, який запущено в іншому процесі, але на одному комп'ютері разом з клієнтом. Наприклад, лист електронної таблиці Microsoft Excel пов'язаний з документом Microsoft Word. При цьому два різні додатки працюють на одному комп'ютері. Локальні сервери використовують СОМ для з'єднання з клієнтом.
Коли клієнт і сервер знаходяться в різних додатках, а також, коли вони знаходяться на різних комп'ютерах в мережі, СОМ використовує внутрішній проксі для реалізації процедури видаленого виклику. Проксі розташовується в одному процесі разом з клієнтом, тому, з погляду клієнта, виклик інтерфейсів здійснюється так само, як і у разі, коли клієнт і сервер знаходяться усередині одного процесу. Задача проксі полягає в тому, щоб перехоплювати виклики клієнта і перенаправляти їх туди, де запущено сервер. Механізм, який дозволяє клієнту діставати доступ до об'єктів, розташованих в іншому адресному просторі або на іншому комп'ютері, називається маршалінгом (marshaling).
Функції маршалінга:
· приймати покажчик інтерфейсу з процесу серверу і робити покажчик проксі в процесі клієнта доступним;
· передавати аргументи викликів інтерфейсу таким чином, ніби вони відбулися від клієнта і розміщувати аргументи в процесс видаленого об'єкту.
Для будь-якого виклику інтерфейсу клієнт поміщає аргументи в стек, викликає необхідну функцію СОМ-об'єкту через покажчик інтерфейсу. Якщо виклик об'єкту відбувся не усередині процесу, виклик проходить через проксі. Проксі пакує аргументи в пакет маршалінга і передає структуру, що вийшла, видаленому об'єкту. Заглушка об'єкту розпаковує пакет маршалінга, вибирає аргументи із стека і викликає необхідну функцію СОМ-об'єкту.
Таким чином, маршалінг - це процес пакування інформації, а демаршалінг - процес розпакування інформації.
Тип маршалінга залежить від об'єктної приналежності СОМ. Об'єкти можуть використовувати стандартний механізм маршалінга, що надається інтерфейсом IDispatch. Стандартний маршалінг дозволяє встановлювати зв'язок за допомогою стандартного системного видаленого виклику процедури (Remote Procedure Call, RFC).
На рис. 2.4 зображена схема, що показує методику взаємодії клієнта і серверу у разі, коли додатки працюють на одному комп'ютері, але в різних процесах.
Рис. 2.4 Схема взаємодії клієнта з сервером в різних процесах на одному комп'ютері
Видалений сервер - це бібліотека DLL або інший додаток, запущений на іншому комп'ютері. Тобто клієнт і сервер працюють на різних комп'ютерах в мережі. Видалений сервер використовує розподілені СОМ-інтерфейси (Distributed COM, DCOM) для зв'язку з клієнтом.
Видалений сервер працює також з допомогою проксі. Відмінність в роботі між локальним і видаленим сервером полягає в типі межпроцесного зв'язку, що використовується. У разі локального серверу - це СОМ, а у разі видаленого серверу - DCOM. Схема взаємодії клієнта і видаленого сервера показана на рис. 3.5.
Рис. 2.5 Схема взаємодії клієнта з сервером на різних комп'ютерах
2.3.3 СОМ-клієнти
Дуже важливим при розробці СОМ-додатків є створення додатків, так називаємих СОМ-клієнтів, що можуть запрошувати інтерфейси об'єктів, щоб визначити ті послуги, які може надати СОМ-об'єкт.
Типовим СОМ-клієнтом є диспетчер автоматизації (Automation Controller). Диспетчер автоматизації - це частина додатка, яка «знає» який тип інформації необхідний йому від різних об'єктів сервера, і вона запрошує дану інформацію у міру потреби.
3. ТЕОРЕТИЧНЕ ДОСЛІДЖЕННЯ ОБ'ЄКТНИХ МОДЕЛЕЙ MS OFFICE
3.1 Об'єктна модель MS Word
Текстовий процесор MS Word і табличний процесор MS Excel, що входить, до складу MS Office, є об'єктами СОМ. Це означає, що будь-яка програма, написана для сучасних версій Windows, може управляти цими об'єктами, якщо вона підтримує інтерфейс СОМ.
Як видно з рис. 3.1, об'єктна модель MS Word має деревовидну структуру, на вершині якої знаходиться об'єкт Application. Колекції (Collection), що входять до складу об'єктної моделі, є списками однотипних об'єктів, доступ до яких здійснюється по індексу. Окремі об'єкти можуть містити колекції, в свою чергу елементи колекції є звичайними об'єктами. Доступ до будь-якого об'єкту або елементу колекції можливий тільки через кореневий об'єкт Application. На рис. 3.1 об'єктна модель зображена в укрупненому вигляді. Можна виділити і детальніше розглянути деякі частини цієї моделі, наприклад, елемент колекції Documents -- об'єкт Document (документ). На рис. 3.2 представлена структура об'єкту Document в тому вигляді, який дає уявлення про його основні елементи і їх взаємозв'язок.
Рис. 3.1 Об'єктна модель MS Word
До складу об'єкту Document входять як елементи, що описують його в цілому, так і елементи, що є змістом документа. Наприклад, колекція властивостей, що описують призначені для користувача характеристики документа (назва, тема, автор і ін.), відноситься до документа в цілому і візуально не відображається в документі. Колекція таблиць -- елемент, який є частиною змісту документа і відображається на його сторінках. У свою чергу елемент колекції може містити свої об'єкти і колекції. Наприклад, кожна таблиця містить колекції рядків і стовпців, а також елементи типу "комірка". Колекції можуть включати не тільки повністю однотипні елементи, але і елементи, які можуть істотно відрізнятися один від одного. Колекція форм (Shapes) містить елементи, однотипні за способом створення і розміщення, а за змістом -- різні.
Рис. 3.2 Об'єктна модель документу MS Word
Елемент колекції Shapes може містити напис (Textbox), зовнішній об'єкт (OLEObject), лінію (Line), полілінию (Polyline) і інші типи об'єктів. Основний об'єкт документа це, звичайно, текст. Для доступу до тексту можна використовувати колекцію Words або об'єкт Range. Елементи колекції Words -- об'єкти, які відображають слова в тексті і містять їх характеристики. Об'єкт Range описує текст або частину тексту цілком.
На рис. 3.3 приведений загальний вид структури об'єктної моделі елементів управління MS Word.
Як видно з рис. 3.3, всі елементи управління MS Word зібрані в одну колекцію, що має деревовидну структуру, кожен вузол якої може містити як об'єкти, так і вкладені колекції. Цю структуру можна настроювати і доповнювати. Користувач і програміст, використовуючи певні інструменти, можуть додати, видалити, модифікувати або активізувати будь-який вузол або об'єкт цієї структури. При цьому будуть виконані методи, відповідні активізованим елементам управління.
Рис. 3.3 Об'єктна модель елементів управління MS Word
Як вже сказано, доступ до документів і застосувань можна здійснювати через об'єкти, що стоять на вершині об'єктної моделі застосувань MS Office. Через них ми дістаємо доступ до внутрішньої структури документів і додатків, тому при створенні контролерів автоматизації ми можемо використовувати тільки їх.
3.2 Об'єктна модель MS Excel
Об'єктна модель MS Excel за загальними принципами ідентична об'єктній моделі MS Word. Ця модель також має ієрархічну структуру, в корені якої знаходиться об'єкт Application (ExcelApplication), через який забезпечується доступ до будь-якої колекції або внутрішнього об'єкту додатку MS Excel або до компонентів відкритих робочих книг. Загальна структура об'єктної моделі MS Excel представлена на рис. 3.4.
Рис. 3.4 Об'єктна модель MS Excel
Як вже сказано, вершиною об'єктної моделі MS Excel є об'єкт Application, що безпосередньо включає такі об'єкти і колекції, як Selection -- поточний виділений об'єкт, WorkBooks -- колекція відкритих робочих книг, колекції різних елементів управління, діалогових вікон і інші властивості додатку MS Excel. Об'єкт Selection має властивості поточного виділеного об'єкту, тому немає сенсу розглядати тут структуру моделі цього об'єкту. Якщо виділена комірка, то Selection = Комірка, якщо діаграма, то Selection = Діаграма. Коли виділена область комірок, Selection = Колекції стовпців і рядків. Колекція робочих книг є списком відкритих робочих книг, доступ до яких здійснюється по індексу. Кожен елемент такої колекції є об'єктом "робоча книга". Панелі управління, меню, кнопки, діалоги і інші об'єкти, призначені для управління додатком, зібрані у відповідні колекції елементів управління.
Основним елементом об'єкту "робоча книга" є колекція робочих аркушів. Елементом колекції є окремий робочий аркуш, який може бути звичайним аркушем (у вигляді таблиці) або бути у вигляді діаграми. У останньому випадку він нічого, окрім діаграми, містити не може. Розглянемо варіант аркуша у вигляді таблиці (рис. 3.5).
Основний об'єкт робочого аркуша, з яким доводиться працювати, -- комірка. Комірка як об'єкт сама володіє безліччю властивостей і об'єктів, що входять в неї. З них найбільш важливими і часто використовуваними є: текст, шрифт, стиль тексту, межі, заливка. Щоб дістати доступ до них, необхідно дістати доступ до самої комірки, а потім змінювати її властивості. Комірки об'єднані у області комірок Range. Властивості області комірок багато в чому співпадають з властивостями самої комірки, але є і відмінності, що полягають в завданні координат і розмірів області. Комірки об'єднані в рядки і стовпці. Об'єднання рядків і стовпців є колекціями, доступ до яких проводиться по числовому індексу або по буквеному позначенню стовпця. На робочому аркуші можуть розташовуватися зовнішні об'єкти: малюнки, фрагменти документів Word, звуки, відеозаписи і інші об'єкти, які об'єднані в колекцію зовнішніх OLE-об'єктів.
Рис.3.5 Об'єктна модель аркуша робочої книги
Прорисовка або, точніше, відтворення цих об'єктів повністю виконується зовнішніми програмами, зареєстрованими в системі як OLE-сервери. Доступ до таких об'єктів проводиться через елементи колекції OLEObjects, а доступ до їх властивостей можливий тільки через ці OLE-сервери. Застосування Excel володіє великим набором власних графічних об'єктів, які можна розмістити на робочому аркуші. Ми можемо використовувати малюнки, написи, геометричні фігури, діаграми, які звичайно об'єднані в колекції. Наприклад, колекція ChartObjects містить набір діаграм, які розташовуються на робочому або на окремому аркуші. Кожна діаграма, у свою чергу, також містить набір об'єктів і колекцій.
Щоб переконатися в гнучкості, універсальності і великих можливостях для програмування об'єктів MS Office, розглянемо ще одну колекцію об'єктів, присутню як в Word, так і в Excel. Це колекція діалогів (діалогових вікон), які користувач звичайно відкриває натисненням тієї або іншої кнопки або вибором команди меню. Вона належить об'єкту Application. У об'єктній моделі всі діалоги представлені у вигляді елементів колекції Dialogs, доступ до яких забезпечується через числовий індекс. За допомогою параметрів методу Show елементу колекції відбуваються передача параметрів в діалог і його виконання -- така модель діалогів для додатків Excel (рис. 3.6, а), для додатків Word модель діалогу дещо відрізняється. Відмінність полягає в тому, що в Word параметри передаються через властивості об'єкту-елементу колекції (мал. 3.6, б).
Рис. 3.6 Об'єктні моделі Знайти в Excel (а) и Знайти та змінити в Word (б)
У об'єкту Item() разом з типовими властивостями і методами присутні властиві тільки йому властивості і методи. Наприклад, у діалогу Знайти і замінити є властивість Find, що визначає текст для пошуку -- до запуску діалогу.
У Excel об'єкт колекції Dialogs дещо відрізняється від діалогів Word. Розглянемо об'єктну модель колекції діалогів для Ехсel в цілому (рис. 3.7).
Рис. 3.7 Об'єктна модель діалогів MS Excel
На цьому малюнку представлена тільки мала частина всіляких діалогів колекції -- показані діалоги, найбільш часто використовувані програмістами і користувачами. Звичайно в діалог передаються значення, які встановлюють значення елементів управління, а повертаються значення True або False, залежно від результату дії користувача.
Додатки зі складу MS Office, наприклад Word і Excel, є взаємозв'язані об'єкти і колекції об'єктів. Кожен об'єкт або колекція включає безліч параметрів і інших об'єктів, колекцій. У свою чергу, самі об'єкти і колекції мають господаря (Parent), до складу якого вони входять. На вершині об'єктної моделі знаходяться об'єкти WordApplication для текстового процесора Word і Excel.Application -- для табличного процесора Excel. Через ці об'єкти, в основному, і здійснюється зв'язок цих додатків із зовнішніми програмами.
4. ОСНОВИ ПРОГРАМУВАННЯ ДОДАТКІВ MS OFFICE В DELPHI
4.1 Загальні принципи створення контролерів автоматизації MS Office
Office - це середовище, в якому більшість завдань можна вирішувати без якого-небудь програмування. Але вся цінність застосувань Office для розробника полягає в тому, що все, що можна зробити руками, можна зробити програмним шляхом з використанням засобів VBA (Visual Basic for Application). Крім того, додатки Office поставляють сервери COM, які надають інтерфейс доступу до додатку і його об'єктів. Завдяки цьому, розробник в середовищі Delphi має можливість, створивши контролер автоматизації, управляти сервером. Насправді додаток розглядається як сукупність об'єктів зі своїми методами, властивостями, подіями, які забезпечують скелет додатку. Програміст Office є не творцем додатку, як, наприклад це робиться в Delphi, а він бере участь в створенні системи документів. Таким чином, ДОКУМЕНТ, а не програма є метою розробки. Спадкоємство - могутній інструмент побудови нового класу, проте програмістам відомий ще один спосіб отримання класу - вбудовування. Як і спадкоємство, вбудовування транзитивне відношення. У об'єктній моделі Office немає спадкоємства в повному розумінні цього слова, а є тільки вбудовування.
Завжди існує кореневий об'єкт, він завжди називається Application. Кожний додаток Office має свій власний кореневий об'єкт - Word.Application, Excel.Application. Не дивлячись на це в об'єкт Application вбудовується вся решта об'єктів (учасники), які є властивостями головного об'єкту. У учасників можуть бути свої учасники і так далі.
Як тільки відкривається новий документ, будь то PowerPoint, Excel, Word, автоматично створюється каркас нового документа, який є набором бібліотек з класами.
Об'єкти цих класів будуть доступні в даному документі. Завданням розробника контролера автоматизації є дати доступ до кореневого об'єкту сервера, збудудувати ланцюжок доступу до об'єктів - учасників (вбудованих об'єктів), правильно передати параметри.
Контролер автоматизації -- це програма, яка "уміє" управляти додатками MS Office і процесом створення документів в середовищі Word і Excel. Для того, щоб все це працювало коректно, програма-контролер повинна виконати наступні функції:
· Перевірити, запущений додаток (Word, Excel) чи ні.
· Якщо додаток не запущено, запустити його.
· Виконати ряд необхідних маніпуляцій із додатком, документом.
· Закрити документ і додаток.
· Очистити пам'ять.
Використовуючи контролери автоматизації, в додатках, створених в середовищі Delphi, можна так само просто, як при звичайній роботі з Word і Excel, створювати документи зі всіма можливими елементами. Таблиці, написи, текст, діаграми і інші компоненти повноцінних документів з'являться у такому вигляді, неначе вони створені користувачем.
4.2 Принципи створення контролерів автоматизації додатку MS Word
4.2.1 Робота з об'єктом Word.Application
Створення об'єкту Word.Application, запуск і візуалізація вікна додатку
Функція, що реалізовує механізм доступу до OLE-об'єкту, знаходиться в бібліотеці ComObj.pas - функція CreateOleObject. Її єдиним аргументом є рядок-ідентифікатор, а повертає вона посилання на об'єкт. Прикладом використання цієї функції є наступний програмний текст:
uses ComObj;
var W:variant;
procedure TForml.ButtonlClick(Sender: TObject);
begin
W:=CreateOleObject('Word.Application1);
end;
Для відображення вікна додатку Word необхідно встановити значення властивості Visible об'єкта Application в True.
Створення документа
Колекція Documents містить документи, їх властивості і методи для роботи з ними. Елементами колекції є відкриті зараз документи. Доступ до них здійснюється через об'єкти Item(doc:variant), де doc - ім'я або індекс документа в колекції. Поле Count колекції містить кількість елементів колекції, якщо Count=0, то немає жодного відкритого документа.
Для створення нового документа використовується метод ADD цієї ж колекції:
W.Documents.Add;
Звертатися до методу ADD колекції Documents можна як без аргументів, так і з аргументом. Коли аргументу немає, створюється звичайний документ. Якщо метод викликається з аргументом (рядком-покажчиком на файл шаблона), то створюється документ за шаблоном.
Якщо вимагається внести зміни в створений раніше документ, тоді відкриваємо його, використовуючи методи колекції Documents.
Відкриття документа
Раніше створений документ можна відкрити за допомогою методу Open. При виклику методу можна вказати і декілька аргументів, але головний з них - посилання на шлях і ім'я файлу. Фрагмент тексту програми для відкриття створеного раніше документа виглядає так:
procedure TForml.Button4Click(Sender: TObject);
var dir_:string;
begin
GetDir(0,dir_);
if not 0penDialog2.Execute then begin chdir(dir_); exit; end;
chdir(dir_);
W.Documents.Open(0penDialog2.FileName);
end;
Запис і зчитування тексту документа
Розглянемо об'єкт Range, який входить в об'єкт-документ і є його властивістю. Об'єкт Range є змістом частини документа або всього документа. Методи цього об'єкту дозволяють записувати і зчитувати інформацію документа.
Метод InsertBefore записує текст в початок вмісту об'єкту Range. Метод InsertAfter записує текст в кінець вмісту об'єкту Range. Практична реалізація виклику цих методів в додатках Delphi:
procedure TUG5CH22_.ButtonlClick(Sender: TObject);
begin
W.ActiveDocument.Range.InsertAfter(Memol.Text+'('+inttostr(nn)+') ' );
nn:=nn+l;
end;
procedure TUG5CH22_.Button2Click(Sender: TObject);
begin
W.ActiveDocument.Range.InsertBefore(Memol.Text+'('+inttostr(nn)+') ' );
nn:=nn+l;
end;
Зчитування тексту з відкритого документа Word можна організувати двома способами. Прикладом реалізації першого способу є наступний код:
procedure TUG5CH22_.Button3Click(Sender: TObject);
begin
Memol.Text:=W.ActiveDocument.Range.Text;
end;
Якщо вимагається експортувати в програму-контролер дуже великий текст, то можна працювати з його фрагментами в документі. Для цього використовується процедура Range(first, last), де first, last - межі діапазону (позиції символів) в якому знаходиться робочий фрагмент.
Інший спосіб зчитування тексту документа базується на зчитуванні слів, які є елементами колекції Words документа. Але даний спосіб підходить для роботи лише з окремими словами і його можна використовувати тільки для зчитування, а не для запису.
Коли документ відкритий, прочитаний, змінений, то, можливо, буде потрібно зберегти ці зміни.
Збереження документа
Найпростіший спосіб збереження документа полягає у виклику методу Save об'єкту-документа, наприклад:
W.ActiveDocument.Save;
Даний спосіб зручно використовувати, якщо документ асоційований з файлом на диску. Коли ми спробуємо зберегти за допомогою цього методу створений документ, то відкриється діалогове вікно, активоване додатком Word.
Інший спосіб збереження нового документу полягає у використанні методу SaveAs. В специфікації мови Visual Basic він описаний так:
ActiveDocument.SaveAs (FileName, FileForroat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter)
Отже, ми відкрили документ, зчитали з нього текст, внесли в документ необхідні зміни і зберегли його. Тепер потрібно закрити його і закінчити роботу з додатком Word.
Закриття документа і додатку Word
Якщо додаток обробляв декілька документів, і всі вони вже збережені, то ці документи можна закрити одночасно з допомогою методу Close колекції Documents:
W.Application.Documents.Close;
Якщо вимагається вибірково закривати документи колекції, використовується метод Close об'єкта-документа. Наприклад, щоб закрити активний документ, використовується оператор:
W.ActiveDocument.Close;
Документи закриті, тепер можна закрити додаток Word і очистити пам'ять від об'єкту Application. Використовуємо метод Quit об'єкту Application і оператор W:=UnAssigned;:
procedure TForml.Buttonl6Click(Sender: TObject);
begin
W.Quit;
W:=UnAs signed;
end;
4.2.2 Створення таблиць і робота з ними
Створення, виділення і видалення таблиць в документі
Документ Word може містити таблиці, які як об'єкти з'єднані в колекцію Tables. Розглянемо її основні властивості і методи. Властивість Count:integer містить інформацію про кількість таблиць в колекції. Якщо в документі немає жодної таблиці, то Count містить нуль. Метод Add додає нову таблицю в колекцію. При створенні таблиці визначається область де буде створена таблиця, і її основні параметри - кількість стовпців і рядків. Хоча колекція таблиць і належить документу, та сама таблиця може бути створена на будь-якому об'єкті або місці документа, на якому це можливо. Об'єкт Item(tab) - елемент колекції і є таблицею з порядковим номером tab даної колекції.
Для створення нової таблиці використовується метод Add. Його специфікація в Visual Basic має наступний вигляд:
expression.Add(Range, NumRows, NumColumns), де Range - область, на якій створюється таблиця; NumRows і NumColumns - кількість рядків і стовпців створюваної таблиці.
Для створення наступної таблиці в тому ж документі необхідно в якості першого аргументу методу Add вказати область, яка вільна і не містить таблицю. Для завдання цієї області можна використовувати метод Range або, наприклад, властивість End об'єкту Range.
Наступна процедура створює нову таблицю в кінці документа:
procedure TForml.Button3Click(Sender: TObject);
var MyRange:variant;
MyRange:=W.ActiveDocument.Range(W.ActiveDocument.Range.End-1, W.ActiveDocument.Range.End-1);
W.ActiveDocument.Tables.Add (Range:=MyRange, NumRows:=2, NumColuinns: =3) ;
W.ActiveDocument.Range.InsertAfter(' ' );
end;
Коли створено декілька таблиць, ми можемо визначити їх кількість. Це значення міститься у властивості Count колекції Tables. Приведена нижче процедура виводить список таблиць в компонент ListBox:
procedure TOKBottomDlg.FormShow(Sender: TObject);
var a_:integer;
begin
ListBoxl.Items.Clear;
for a_:=l to Forml.W.ActiveDocument.Tables.Count do
begin
ListBoxl.Items.Add('Таблица - '+inttostr(a_));
end;
end;
Використовуючи об'єкт Item колекції Tables і порядковий номер таблиці, можна виділити будь-яку таблицю зі всього списку таблиць документа для подальших маніпуляцій. Для виділення таблиці, яка міститься в колекції, використовується метод Select об'єкту Item. Цей об'єкт містить всі методи, колекції і об'єкти, властиві таблиці як об'єкту.
Додавання і видалення рядків і стовпців таблиці
Для збільшення таблиці призначений метод Add колекцій Rows і Columns, а для видалення елементів цих колекцій - метод Delete. Перший метод додає рядок або стовпець в кінець таблиці, а другий видаляє рядок або стовпець з вказаним індексом. Приклади процедур для зміни кількості рядків і стовпців таблиці:
procedure T0KBottomDlg6.ButtonlClick(Sender: TObject);
begin
table.Columns.Add;
end;
procedure TOKBottomDlg6.Button2Click(Sender: TObject);
begin
table.Rows.Add;
end;
procedure TOKBottomDlg6.Button3Click(Sender: TObject);
begin
table.Columns.Item(1).Delete;
end;
procedure TOKBottomDlg6.Button4Click(Sender: TObject);
begin
table.Rows.Item(1).Delete;
end;
Текст в комірках таблиці
Коли таблиця створена, можна заповнювати її текстом. Записувати інформацію безпосередньо в комірку таблиці дозволяє об'єкт Cell, який і є коміркою. Посилання на конкретну комірку одержують, звертаючись до об'єкту Cell з параметрами (номер рядка і стовпця). До складу об'єкту "комірка" входить об'єкт Range, який може містити текст. Використовуючи властивості комірки і об'єкту Range, запишемо текст в конкретну комірку:
// Компоненти RowІd і ColumnІd дозволяють користувачу вибрати комірку
// а Range_Text - ввести в неї текст.
procedure TOKBottomDlg7.RangeJTextChange(Sender: TObject);
begin
table.Cell(RowІd.value, ColumnІd.value).Range.Text:=Range_Text.text;
end;
// Вирівнюємо текст в комірці по вертикалі, використовуючи властивість
// VerticalAlignment, яке може приймати значення - 0, 1, 2.
procedure TOKBottomDlg7.VerticalAlignmentChange(Sender: TObject);
begin
table.Cell(RowІd.value, ColumnІd.value).VerticalAlignment:=
VerticalAlignment.itemindex;
end;
// Горизонтальне вирівнювання здійснюється за допомогою властивості
// Alignment об'єкту ParagraphFormat, що належить об'єкту Range.
procedure TOKBottomDlg7.AlignmentChange(Sender: TObject);
begin
table.Cell(RowІd.value, ColumnІd.value).Range.ParagraphFormat.Alignment:=
Alignment.itemindex;
end;
Вибір шрифту для тексту комірки:
procedure TOKBottomDlg7.ButtonlClick(Sender: TObject);
begin
if not FontDialogl.Execute then exit;
FontToWFont(FontDialogl.font,table.Cell(RowІd.value, ColumnІd.value).Range.font);
end;
Дана процедура, що використовує шрифт, який повертається діалогом FontDialog1, змінює шрифт комірки Cell(RowId.value, ColumnІd.value).
Вибір кольору шрифту для тексту комірки:
const
wdAuto =0;
wdBlack =1;
wdBlue =2;
wdTurquoise =3;
wdBrightGreen =4;
wdGray50 =14;
wdGray25 =15;
procedure TOKBottomDlg7.TextColorlndexChange(Sender: TObject);
begin
table.Cell(RowІd.value, ColumnІd.value).Range.font.ColorIndex:=
TextColorІndex.itemindex;
end;
Напрям тексту
Ще одна властивість тексту в Word - напрям. Напрям тексту задається установкою властивості Orientation об'єкту Range в значення одній з трьох можливих констант.
Завдання напряму тексту:
const
wdTextOrientationUpward =2;
wdTextOrientationHorizontal =0;
wdTextOrientationDownward =3;
procedure TOKBottomDlg7.OrientationChange(Sender: TObject);
begin
case Orientation.itemindex
0:table.Cell(RowІd.value,ColumnІd.value).Range.Orientation:=
wdTextOrientationUpward;
1:table.Cell(RowІd.value,ColumnІd.value).Range.Orientation:=
wdTextOrientationHorizontal;
2:table.Cell(RowІd.value, ColumnІd.value).Range.Orientation:=
wdTextOrientationDownward;
end;
end;
4.2.3 Настройка параметрів сторінки і друк документа
Настройка сторінки визначається її висотою, шириною, розмірами полів, орієнтацією і іншими параметрами, що визначаються через властивості об'єкту PageSetup, який, у свою чергу, належить об'єкту-документу.
Для доступу до параметрів сторінки використовуємо наступний оператор, що повертає посилання на об'єкт:
PageSetup:=ActiveDocument.PageSetup;
Визначення параметрів сторінки:
procedure TOKBottomDlg7.FormCreate(Sender: TObject);
begin
PageSetup:=Forml.W.ActiveDocument.PageSetup;
Orientation.Itemlndex:=PageSetup.Orientation;
VerticalAlignment.ItemIndex:=PageSetup.VerticalAlignment;
CheckBoxl.Checked:=PageSetup.LineNumbering.Active;
PageWidth.Value:=PageSetup.PageWidth;
PageHeight.Value:=PageSetup.PageHeight;
TopMargin.Value:=PageSetup.TopMargin;
LeftMargin.Value:=PageSetup.LeftMargin;
end;
Друк документа здійснюється за допомогою методу PrintOut об'єкту "документ". Наступна процедура дозволяє виконати друк двох копій активного документа:
procedure TOKBottomDlg7.Button3Click(Sender: TObject);
begin
Forml.W.ActiveDocument.Printout(Copies: =2);
end;
Для попереднього перегляду активного документа перед друком можна використовувати наступну процедуру:
procedure TOKBottomDlg7.Button2Click(Sender: TObject);
begin
Forml.W.ActiveDocument.PrintPreview;
end;
4.2.4 Елементи управління додатку MS Word
Колекція CommandBars є сукупністю панелей інструментів і панелі головного меню, а також подібних елементів (панелей і меню), створених користувачем. Кожний з цих елементів, у свою чергу, є господарем кнопок (панелі) або пунктів меню (головне меню і інші меню).
Дослідимо деякі загальні властивості колекції CommandBars. Наприклад, властивість колекції LargeButtons дозволяє вибирати розміри кнопок всіх панелей - великі або маленькі - змінюючи значення цієї властивості:
W.CoramandBars.LargeButtons:=LargeButtons.Checked;
Іншою загальною властивістю колекції панелей управління є режим показу спливаючих підказок для кнопок, який визначається двома властивостями логічного типу: DisplayTooltips - визначає, включена або відключена підказка; DisplayKeysInTooltips - визначає присутність в підказці "гарячих клавіш". Зміна режиму підказок визначається просто установкою цих властивостей в певне значення:
procedure TForml.DisplayTooltipsClick(Sender: TObject);
begin
W.CoramandBars.DisplayTooltips:=DisplayTooltips.Checked;
end;
procedure TForml.DisplayKeysInTooltipsClick(Sender: TObject);
begin
W.CommandBars.DisplayKeysInTooltips:=DisplayKeysInTooltips.Checke;
end;
Доступ до панелей управління і їх властивостей здійснюється через об'єкти Item(i:integer), де i - індекс елемента в колекції.
Елементи колекції CommandBars, їх відображення і розташування
Для отримання списку всіх елементів, що входять в колекцію CommandBars, використовується властивість Count колекції і властивість елемента Name. Властивість Name має строковий тип і є ім'ям елемента. Його можна використовувати для доступу до будь-якого елемента колекції аналогічно індексу, що має числовий тип.
Властивість панелей Enabled дозволяє активувати або деактивувати панель в головному вікні додатку Word. Вона має тип Boolean і визначає можливість доступу користувача до них. Коли властивість Enabled має значення False, користувач не може користуватися даною панеллю - вона взагалі не відображається. Якщо встановити цю властивість в значення True, то панель буде доступна і займе своє колишнє місце у вікні додатку Word. Можливо, цією властивістю необхідно скористатися, коли вимагається блокувати доступ користувача до деяких елементів управління.
Створення призначеної для користувача панелі або меню
Для створення призначеної для користувача панелі використовується метод Add колекції CommandBars. У цього методу є декілька аргументів. Синтаксис виклику методу Add:
Add(Name, Position, MenuBar, Temporary);
де Name:string - назва створюваної панелі, Position:integer - її розташування, MenuBar:boolean - ознака створення меню, Temporary:boolean - ознака створення тимчасової панелі. Використовуючи дані аргументи і їх комбінації ми можемо як створити звичайну панель з кнопками або меню, так і замінити існуюче головне меню додатку Word. Будь-який із створюваних компонентів колекції CommandBars може бути створений як тимчасовий об'єкт (на час одного сеансу роботи додатку) або як постійний об'єкт.
Елементи управління і їх властивості
Панель може містити кнопки і інші елементи управління, наприклад, списки або пункти меню, що розкриваються. Ці елементи у свою чергу належать самій панелі і з'єднані в колекцію Controls. За допомогою цієї колекції здійснюється доступ до всіх елементів управління вибраної панелі. Колекція Controls має декілька властивостей і один метод: властивості Count (кількість елементів колекції) і Item(i:integer) (елементи колекції, де i - індекс кнопки), метод Add, що дозволяє додавати на панель нові елементи.
Дослідимо зміст панелі і деякі властивості елементів управління. Якщо розглядати меню, то його основна відмінність від панелі з кнопками полягає в тому, що елементом управління у складі меню може бути як пункт меню так і підменю зі своїми елементами управління і т.д. Для аналізу властивостей панелі, використовують властивості Count і Item() колекції Controls, а також властивості Caption і TooltipText.
Завантаження списку елементів управління панелі:
procedure T0KBottomDlg5.FormCreate(Sender: TObj ect);
var a_:integer;
eee_:string;
begin
MYCONTROLS:=OKBottomDlg4.CommandBars.Item [
0KBottomDlg4.ListBoxl.Itemlndex+l].CONTROLS;
for a_:=l to MYCONTROLS.Count do begin
eee_:=MYCONTROLS.Item[a_].Caption+'=
'+MYCONTROLS.Item[a_].TooltipText;
ListBoxl.Items.Add(eee_);
end;
MYCONTROL:=MYCONTROLS.Item[ 1 ] ;
end;
4.3 Принципи створення контролерів автоматизації MS Excel
4.3.1 Створення об'єкту Excel.Application, запуск і візуалізація вікна додатку
Запуск і візуалізація додатку Excel проводиться аналогічно запуску і візуалізації додатку Word, з тією лише різницею, що функція CreateOleObject звертається до об'єкту Excel.Application.
Створений і запущений екземпляр додатку Excel не містить жодної робочої книги. Всі робочі книги, які в даний момент можуть бути активними або належати об'єкту Application, є приналежністю колекції WorkBooks, яка у свою чергу належить кореневому об'єкту. Властивість Count:integer колекції WorkBooks містить кількість відкритих робочих книг.
Подобные документы
База даних як складова частина інформаційної системи. Загальні принципи створення контролерів автоматизації MS Office. Розробка гнучкої комп'ютеризованої системи, призначеної для автоматизації розрахунку учбового навантаження. Моделі представлення даних.
дипломная работа [4,7 M], добавлен 26.10.2012Об'єктна модель MS Excel. Загальні принципи створення контролерів автоматизації MS Office. Створення об'єкту Excel. Application, запуск і візуалізація вікна додатку. Загальні характеристики середовища Delphi. Високопродуктивний компілятор у машинний код.
дипломная работа [1,2 M], добавлен 26.10.2012Дослідження технології com та принципи створення контролерів автоматизації Ms Office і Ms Excel. Розробка програмного забезпечення для збору статистичного ряду показників в умовах неврологічного відділення Криворізького інституту професійних захворювань.
дипломная работа [2,8 M], добавлен 22.10.2012Реалізація гнучкої спеціалізованої системи підприємництва в середовищі Delphi 6.0 за допомогою технології доступу до баз даних ADO. Розробка елементів системи, її призначення для накопичення і обробки інформації про обіг товарів приватного підприємства.
дипломная работа [1,3 M], добавлен 26.10.2012Delphi як візуальне середовище розробки програмного забезпечення. Створення автоматизованої системи відстеження дзвінків з мобільних телефонів працівниками правоохоронних органів. Основи технології ACTIVEX DATA OBJECTS. Функціональні можливості системи.
дипломная работа [5,0 M], добавлен 26.10.2012Общая характеристика приложения Microsoft Office system 2007. Особенности форматов Microsoft Office Open XML. Технологии управления миграцией на новую версию. Возможности приложений Office Word, Excel, Access и Office PowerPoint 2007, их интеграция.
реферат [1,0 M], добавлен 13.09.2011Изменение пользовательского интерфейса приложения Microsoft Office system 2007. Увеличение функциональности приложений для поддержки совместной работы (Office Word 2007, Office Excel 2007, Office PowerPoint 2007, Office Access 2007 и Office Outlook 2007).
контрольная работа [1,5 M], добавлен 13.12.2009Види інформаційних систем. Програмна реалізація гнучкої системи для автоматизованої реєстрації та обліку руху імунобіологічних препаратів в середовищі Delphi 6.0 з використанням технології доступу до баз даних ADO. Розрахунок витрат на розробку програми.
дипломная работа [3,2 M], добавлен 25.10.2012Аналіз особливостей конвертації файлів графічних форматів з використанням технології dotNet і створення системи, яка дозволяє наочно проілюструвати принципи програмування з використанням особливостей цієї платформи. Етапи створення windows-додатків.
дипломная работа [3,1 M], добавлен 22.10.2012Підстава для створення системи Компас-3D. Характеристика розробленого програмного забезпечення. Призначення і характеристики систем автоматизації конструкторської документації. Дослідження методів створення динамічних бібліотек в середовищі Delphi.
дипломная работа [3,3 M], добавлен 22.10.2012