Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Розробка комп"ютеризованої системи підтримки технології проектування ескізів мозаїчної плитки

ДипломнаДопомога в написанніДізнатися вартістьмоєї роботи

Щоб переконатися в гнучкості, універсальності і великих можливостях для програмування об'єктів MS Office, розглянемо ще одну колекцію об'єктів, присутню як в Word, так і в Excel. Це колекція діалогів (діалогових вікон), які користувач звичайно відкриває натисненням тієї або іншої кнопки або вибором команди меню. Вона належить об'єкту Application. У об'єктній моделі всі діалоги представлені… Читати ще >

Розробка комп"ютеризованої системи підтримки технології проектування ескізів мозаїчної плитки (реферат, курсова, диплом, контрольна)

Міністерство освіти і науки України Криворізький інститут Кременчуцького університету економіки, інформаційних технологій і управління Кафедра технічної кібернетики ДИПЛОМНА РОБОТА зі спеціальності

7.91 402 «Гнучкі комп’ютеризовані системи та робототехніка»

ПОЯСНЮВАЛЬНА ЗАПИСКА

«Розробка комп’ютеризованої системи підтримки технології проектування ескізів мозаїчної плитки»

Студента групи ГКС-05-з Барабашука Максима Олександровича

Керівник роботи ст. викл. Супрунова Юлія Анатоліївна

Консультанти:

зі спеціальної частини доц., к.т.н. Лукашенко Й. М з програмної частини доц., к.т.н. Вдовиченко І.Н.

з економічної частини доц., к.е.н. Тимко Є.В.

з охорони праці доц., к.т.н. Климович Г. Б.

нормоконтроль ст. викл. Захарова Г. Б.

Завідувач кафедри ТК доц., к.т.н. Старіков О.М.

Кривий Ріг 2010

Міністерство освіти і науки України Криворізький інститут Кременчуцького університету економіки, інформаційних технологій і управління Кафедра технічної кібернетики Спеціальність 7.91 402 «Гнучкі комп’ютеризовані системи та робототехніка»

ЗАТВЕРДЖУЮ Зав. кафедрою доц., к.т.н. Старіков О.М.

_______________________

" 1 «листопада 2009 р.

ЗАВДАННЯ на дипломну роботу студента Барабашука Максима Олександровича

1. Тема роботи: Розробка комп’ютеризованої системи підтримки технології ____

проектування ескізів мозаїчної плітки____________________________

затверджена наказом по інституту від «29 «жовтня 2009 р. № 73С-01__

2. Термін здачі студентом закінченої роботи 25.05.10. _

3. Вхідні дані до роботи: Вимоги до кінцевого програмного продукту, вихідні масиви даних, матеріали наукових досліджень, опис технології виробничого процесу.

4. Зміст розрахунково-пояснювальної записки (перелік питань, що підлягають розробці): Постановка завдання; Основи технології COM; Теоретичне дослідження об'єктної моделі MS EXCEL та основ програмування додатків MS OFFICE в DELPHI; Середовище DELPHІ як засіб розробки гнучких комп’ютеризованих систем; Опис функціональних можливостей та програмної реалізації проектованої системи; Економічне обґрунтування доцільності розробки програмного продукту; Охорона праці.

5. Перелік графічного матеріалу (з точними вказівками обов’язкових креслень)

1. Об'єктна модель MS Excel

2. Об'єктна модель аркуша робочої книги MS Excel

3. Схема роботи покажчика СОМ-інтерфейсу_____________________

4. Логіко-функціональна схема роботи системи

5. Загальна схема технологічного процесу

6. Алгоритми основних процедур системи

7. Схема інформаційних потоків системи _________________________

8. Приклади робочого вікна системи

6. Консультанти з роботи, з вказівками розділів роботи, що належать до них

Розділ

Консультант

Підпис, дата

Завдання видав

Завдання прийняв

Спеціальна частина

Вдовиченко І.Н.

Програмна частина

Лукашенко Й.М.

Економічна частина

Тимко Є.В.

Охорона праці

Климович Г. Б.

7. Дата видачі завдання 01.11.09 р.

Керівник ____________________

Завдання прийняв до виконання ____________________

КАЛЕНДАРНИЙ ПЛАН

№ п/п

Найменування етапів дипломної роботи

Термін виконання етапів роботи

Примітки

1.

Отримання завдання на дипломну роботу

01.11.09

2.

Огляд існуючих рішень

20.02.10

3.

Теоретичне дослідження інструментальних засобів реалізації проекту

13.03.10

4.

Програмна частина (постановка задачі, створення програмного забезпечення, опис алгоритму рішення задачі, проектування та опис інтерфейсу користувача, опис програми)

28.04.10

5.

Оформлення пояснювальної записки

13.05.10

6.

Оформлення графічної документації

18.05.10

7.

Оформлення електронних додатків до диплому

25.05.10

8.

Представлення дипломної роботи до захисту

01.06.10

Студент-дипломник _________________

Керівник роботи _________________

Анотація Метою дипломної роботи є розробка гнучкої системи підтримки технології проектування ескізів мозаїчної плітки. Розроблена система пройшла апробацію в ТОВ «Поліедр», яке виробляє поліефірну облицювальну мозаїчну плитку.

Розроблена система реалізована в середовищі Delphi 6. Додатковою вимогою є встановлення пакету MS Excel, який необхідний для формування вихідних документів системи.

Розділів 7, схем та малюнків 20, таблиць 9, бібліографічних посилань 30, загальний обсяг — 114.

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

Разработанная система реализована в среде Delphi 6. Дополнительным требованием является установка пакета MS Excel, который необходим для формирования выходных документов системы.

Разделов 7, схем и рисунков 20, таблиц 9, библиографических ссылок 30, общий объем — 114.

The summary

The purpose of the diploma work is development of the flexible system for planning the sketches inlaid tile technology. The developed system passed approbation in LTD «POLIEDR», which is making the facing inlaid tile.

The developed system is realized in the environment of Delphi 6. Setting of package of MS Excel, which is needed for forming of outputs documents of the system, is the additional requirement.

Sections 7, circuits and figures 20, tables 9, bibliographic references 30, total amount — 114.

ЗМІСТ ВСТУП

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 EXCEL ТА ОСНОВ ПРОГРАМУВАННЯ ДОДАТКІВ MS OFFICE В DELPHI

3.1 Об'єктна модель MS Excel

3.2 Загальні принципи створення контролерів автоматизації MS Office

3.3. Принципи створення контролерів автоматизації MS Excel

3.3.1 Створення об'єкту Excel. Application, запуск і візуалізація вікна додатку

3.3.2 Робота з аркушами робочої книги

3.3.3 Робота з комірками

3.3.4 Пошук і заміна тексту

3.3.5 Формули

4. СЕРЕДОВИЩЕ DELPHІ ЯК ЗАСІБ РОЗРОБКИ ГНУЧКИХ КОМП’ЮТЕРИЗОВАНИХ СИСТЕМ

4.1 Загальні характеристики середовища Delphi

4.2 Високопродуктивний компілятор у машинний код

4.3 Delphі як об'єктно-орієнтована мова

4.4 Основні концепції створення додатків у середовищі Wіndows

4.5 Особливості написання програм у середовищі Delphі

4.6 Огляд палітри компонентів

4.7 Вікно форми

4.8 Вікно дерева об'єктів

4.9 Вікно інспектора об'єктів

4.10 Вікно коду програми

4.11. Типи змінних

4.11.1 Цілочисельний тип

4.11.2 Дійсний тип

4.11.3 Символьний тип

4.11.4 Строковий тип

4.11.5 Булевий тип

5. ОПИС ФУНКЦІОНАЛЬНИХ МОЖЛИВОСТЕЙ ТА ПРОГРАМНОЇ РЕАЛІЗАЦІЇ ПРОЕКТОВАНОЇ СИСТЕМИ

5.1 Функціональне призначення та технологічні особливості розробки

5.2 Логіко-функціональна схема роботи системи

5.3 Розробка алгоритмів та програмна реалізація основних процедур системи

5.4 Опис інтерфейсу користувача

6 ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОЗРОБКИ ПРОГРАМНОГО ПРОДУКТУ

7. ОХОРОНА ПРАЦІ

7.1 Аналіз небезпечних і шкідливих факторів в обчислювальному центрі

7.2 Заходи щодо нормалізації шкідливих і небезпечних факторів

7.3 Пожежна безпека ВИСНОВКИ СПИСОК ЛІТЕРАТУРИ ДОДАТОК, А — Приклади зображення — оригіналу та отриманого дизайнером ескізу ДОДАТОК Б — Приклади вихідних документів системи

ВСТУП

Потоки інформації, що циркулюють у світі, який нас оточує, величезні. У часі вони мають тенденцію до збільшення. Тому у любій організації, як великій, так і малій, виникає проблема такої організації управління даними, яка забезпечила б найбільш ефективну роботу. Деякі організації використовують для цього шафи з папками, але більшість надають перевагу комп’ютеризованим засобам — базам даних, які дозволяють ефективно зберігати, структурувати і систематизувати великі об'єми даних. І вже сьогодні без баз даних неможливо уявити роботу більшості фінансових, промислових, торгових та інших організацій. Як би не було баз даних, вони б просто захлинулись в інформаційній лавині.

Метою дипломної роботи є створення комп’ютеризованої системи підтримки технології проектування ескізів мозаїчної плитки. Для реалізації цих вимог було зручніше всього було створити незалежну програму у вигляді exe-файлу, що працює з-під Windows, з інтерфейсом максимально пристосованого для зручної роботи, що не потребує ніяких додаткових знань.

Реалізація даної задачі проводиться у системі програмування Delphi, яка володіє великими можливостями по створенню програм, необхідним набором драйверів для доступу до самих відомих форматів баз даних, зручними і розвиненими засобами для доступу до інформації, що розташована як на локальному диску, так і на віддаленому сервері, а також великою колекцією візуальних компонентів для побудування вікон, які відображаються на екрані.

Система візуального програмування Delphi користується великою популярністю серед широкого круга користувачів: від програмістів, що починають, до досвідчених розробників складних додатків, що займаються створенням великих інформаційних систем. Delphi дозволяє швидко і ефективно розробляти найрізноманітніші програми. Вона має розвинені можливості по створенню призначеного для користувача інтерфейсу, широкий набір функцій, методів і властивостей для вирішення прикладних розрахунково-обчислювальних завдань.

Delphi використовується перш за все для створення і підтримки систем, призначених як для окремих персональних комп’ютерів, так і для серверів. Delphi, як і розроблені з її допомогою програмні продукти, можуть функціонувати під практично будь-якою операційною системою типу Windows 95, 98, 2000 NT, XP, Vista.

Про Delphi говорять як про середовище швидкого створення програм. Це технологія візуального програмування, тобто користувач оформляє свою майбутню програму, і бачить результати своєї роботи ще до запуску самої програми.

Для завдання яких-небудь властивостей елементу програми, що розробляється, зовсім не обов’язково писати масивні текстові рядки, досить змінити цю властивість в інспекторі об'єктів (так званому моніторі властивостей вибраного елементу). Ця зміна автоматично доповнить або модифікує програмний код.

Це великий плюс у візуальній технології програмування. Створюючи або модифікуючи свій програмний продукт, користувач не знаючи або не звертаючи уваги на деякі властивості елементу програми, а використовуючи тільки необхідні, пише повністю готовий робочий продукт, деколи виступаючий на рівних по складності, з написаними в невізуальному редакторі.

1. ПОСТАНОВКА ЗАВДАННЯ

1.1 Найменування та галузь використання

Найменування розробки: гнучка система підтримки технології проектування ескізів мозаїчної плітки. Розроблена система пройшла апробацію в ТОВ «Поліедр», яке виробляє поліефірну облицювальну мозаїчну плитку.

1.2 Підстава для створення

Підставою для розробки є наказ № 73С-01 від 29 жовтня 2009 р. по Криворізькому інституту КУЕІТУ.

Початок робіт: 01.11.09. Закінчення робіт: 25.06.10.

1.3 Характеристика розробленого програмного забезпечення

Розроблена система реалізована в середовищі Delphi 6. Система повинна функціонувати під керуванням операційної системи Windows ХР. Додатковою вимогою є встановлення пакету MS Excel, який необхідний для формування вихідних документів системи.

Вхідною інформацією для розробленої системи є файл формату bmp, де кожному пікселю відповідає одна плитка ескізу зображення.

Головним завданням системи є генерація наступних вихідних документів. По-перше — це технологічна карта, яка є вміщує зразки відтінків мозаїки та кількість плиток з таким відтінком. Кольори плиток позначаються латинськими буквами. Згідно цього документу відбувається виробництво плиток мозаїки.

По-друге — це схема зображення, яка представлена у вигляді файлу в форматі Excel. Схема розбита на квадрати і кожній плитці відповідає свій код. Після виробництва необхідної кількості пліток мозаїки за допомогою цієї схеми відбувається її збір.

1.4 Мета й призначення

Метою дипломної роботи є розробка гнучкої системи підтримки технології проектування ескізів мозаїчної плітки.

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

1.5 Загальні вимоги до розробки

Вимоги до програмного забезпечення:

· Робота в середовищі операційних систем Windows;

· Простота й зрозумілість інтерфейсу.

Мінімальні вимоги до апаратного забезпечення:

· IBM-сумісний комп’ютер, не нижче Pentium IІ, RAM-128Mb, SVGA-800*600*16bit;

· Вільний простір на жорсткому диску не менш 2 Мб.

· Додаткове програмне забезпечення: встановлення пакету MS Excel, який необхідний для формування вихідних документів системи.

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. Схема взаємодії клієнта і видаленого сервера показана на рис. 2.5.

Рис. 2.5 Схема взаємодії клієнта з сервером на різних комп’ютерах

2.3.3 СОМ-клієнти

Дуже важливим при розробці СОМ-додатків є створення додатків, так називаємих СОМ-клієнтів, що можуть запрошувати інтерфейси об'єктів, щоб визначити ті послуги, які може надати СОМ-об'єкт.

Типовим СОМ-клієнтом є диспетчер автоматизації (Automation Controller). Диспетчер автоматизації - це частина додатка, яка «знає» який тип інформації необхідний йому від різних об'єктів сервера, і вона запрошує дану інформацію у міру потреби.

3. ТЕОРЕТИЧНЕ ДОСЛІДЖЕННЯ ОБ'ЄКТНОЇ МОДЕЛІ MS EXCEL ТА ОСНОВ ПРОГРАМУВАННЯ ДОДАТКІВ MS OFFICE В DELPHI

3.1 Об'єктна модель MS Excel

Об'єктна модель MS Excel за загальними принципами ідентична об'єктній моделі MS Word. Ця модель також має ієрархічну структуру, в корені якої знаходиться об'єкт Application (ExcelApplication), через який забезпечується доступ до будь-якої колекції або внутрішнього об'єкту додатку MS Excel або до компонентів відкритих робочих книг. Загальна структура об'єктної моделі MS Excel представлена на рис. 3.1.

Рис. 3.1 Об'єктна модель MS Excel

Як вже сказано, вершиною об'єктної моделі MS Excel є об'єкт Application, що безпосередньо включає такі об'єкти і колекції, як Selection — поточний виділений об'єкт, WorkBooks — колекція відкритих робочих книг, колекції різних елементів управління, діалогових вікон і інші властивості додатку MS Excel.

Об'єкт Selection має властивості поточного виділеного об'єкту, тому немає сенсу розглядати тут структуру моделі цього об'єкту. Якщо виділена комірка, то Selection = Комірка, якщо діаграма, то Selection = Діаграма.

Коли виділена область комірок, Selection = Колекції стовпців і рядків. Колекція робочих книг є списком відкритих робочих книг, доступ до яких здійснюється по індексу. Кожен елемент такої колекції є об'єктом «робоча книга». Панелі управління, меню, кнопки, діалоги і інші об'єкти, призначені для управління додатком, зібрані у відповідні колекції елементів управління.

Основним елементом об'єкту «робоча книга» є колекція робочих аркушів. Елементом колекції є окремий робочий аркуш, який може бути звичайним аркушем (у вигляді таблиці) або бути у вигляді діаграми. У останньому випадку він нічого, окрім діаграми, містити не може. Розглянемо варіант аркуша у вигляді таблиці (рис. 3.2).

Рис. 3.2 Об'єктна модель листа робочої книги Основний об'єкт робочого аркуша, з яким доводиться працювати, — комірка. Комірка як об'єкт сама володіє безліччю властивостей і об'єктів, що входять в неї. З них найбільш важливими і часто використовуваними є: текст, шрифт, стиль тексту, межі, заливка. Щоб дістати доступ до них, необхідно дістати доступ до самої комірки, а потім змінювати її властивості. Комірки об'єднані у області комірок Range. Властивості області комірок багато в чому співпадають з властивостями самої комірки, але є і відмінності, що полягають в завданні координат і розмірів області. Комірки об'єднані в рядки і стовпці. Об'єднання рядків і стовпців є колекціями, доступ до яких проводиться по числовому індексу або по буквеному позначенню стовпця. На робочому аркуші можуть розташовуватися зовнішні об'єкти: малюнки, фрагменти документів Word, звуки, відеозаписи і інші об'єкти, які об'єднані в колекцію зовнішніх OLE-об'єктів. Прорисовка або, точніше, відтворення цих об'єктів повністю виконується зовнішніми програмами, зареєстрованими в системі як OLE-сервери. Доступ до таких об'єктів проводиться через елементи колекції OLEObjects, а доступ до їх властивостей можливий тільки через ці OLE-сервери. Застосування Excel володіє великим набором власних графічних об'єктів, які можна розмістити на робочому аркуші. Ми можемо використовувати малюнки, написи, геометричні фігури, діаграми, які звичайно об'єднані в колекції. Наприклад, колекція ChartObjects містить набір діаграм, які розташовуються на робочому або на окремому аркуші. Кожна діаграма, у свою чергу, також містить набір об'єктів і колекцій.

Щоб переконатися в гнучкості, універсальності і великих можливостях для програмування об'єктів MS Office, розглянемо ще одну колекцію об'єктів, присутню як в Word, так і в Excel. Це колекція діалогів (діалогових вікон), які користувач звичайно відкриває натисненням тієї або іншої кнопки або вибором команди меню. Вона належить об'єкту Application. У об'єктній моделі всі діалоги представлені у вигляді елементів колекції Dialogs, доступ до яких забезпечується через числовий індекс. За допомогою параметрів методу Show елементу колекції відбуваються передача параметрів в діалог і його виконання — така модель діалогів для додатків Excel (рис. 3.3, а), для додатків Word модель діалогу дещо відрізняється. Відмінність полягає в тому, що в Word параметри передаються через властивості об'єкту-елементу колекції (рис. 3.3, б).

Рис. 3.3 Об'єктні моделі Знайти в Excel (а) и Знайти та змінити в Word (б) У об'єкту Item () разом з типовими властивостями і методами присутні властиві тільки йому властивості і методи. Наприклад, у діалогу Знайти і замінити є властивість Find, що визначає текст для пошуку — до запуску діалогу.

У Excel об'єкт колекції Dialogs дещо відрізняється від діалогів Word. Розглянемо об'єктну модель колекції діалогів для Ехсel в цілому (рис. 3.4).

Рис. 3.4 Об'єктна модель діалогів MS Excel

На цьому малюнку представлена тільки мала частина всіляких діалогів колекції — показані діалоги, найбільш часто використовувані програмістами і користувачами. Звичайно в діалог передаються значення, які встановлюють значення елементів управління, а повертаються значення True або False, залежно від результату дії користувача.

Додатки зі складу MS Office, наприклад Word і Excel, є взаємозв'язані об'єкти і колекції об'єктів. Кожен об'єкт або колекція включає безліч параметрів і інших об'єктів, колекцій. У свою чергу, самі об'єкти і колекції мають господаря (Parent), до складу якого вони входять. На вершині об'єктної моделі знаходяться об'єкти WordApplication для текстового процесора Word і Excel. Application — для табличного процесора Excel. Через ці об'єкти, в основному, і здійснюється зв’язок цих додатків із зовнішніми програмами.

3.2 Загальні принципи створення контролерів автоматизації 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, створювати документи зі всіма можливими елементами. Таблиці, написи, текст, діаграми і інші компоненти повноцінних документів з’являться у такому вигляді, неначе вони створені користувачем.

3.3 Принципи створення контролерів автоматизації MS Excel

3.3.1 Створення об'єкту Excel. Application, запуск і візуалізація вікна додатку

Запуск і візуалізація додатку Excel проводиться аналогічно запуску і візуалізації додатку Word, з тією лише різницею, що функція CreateOleObject звертається до об'єкту Excel.Application.

Створений і запущений екземпляр додатку Excel не містить жодної робочої книги. Всі робочі книги, які в даний момент можуть бути активними або належати об'єкту Application, є приналежністю колекції WorkBooks, яка у свою чергу належить кореневому об'єкту. Властивість Count: integer колекції WorkBooks містить кількість відкритих робочих книг.

Метод Add колекції WorkBooks дозволяє створити нову робочу книгу. При цьому якщо аргументом методу буде рядок, що вказує на файл шаблона, то нова книга буде створена на основі цього шаблона. Якщо аргументів немає, то буде створена звичайна книга в режимі «за умовчанням» .

Використання методів колекції WorkBooks дозволяє не тільки створювати, але і відкривати наявні робочі книги, які зберігаються у файлах. Для цієї мети призначені методи Open і OpenText. Перший метод відкриває файл формату XLS, а другий — звичайні текстові файли. Частіше за все використовується метод Open з одним аргументом — рядком-покажчиком на файл.

Повна специфікація виклику методу Open має наступний вигляд:

Open (FileName, UpdateLinks, Readonly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMRU);

Обов’язковим є перший аргумент. Для завдання специфічних режимів відкриття файлу можна використовувати і інші аргументи.

Об'єкти Item (i:integer) містять посилання на всі робочі книги колекції WorkBooks (i:integer — індекс книги в колекції). Як аргумент при зверненні до Item може виступати і строкова змінна, що містить ім'я книги. Властивість Count колекції містить кількість відкритих документів колекції. Використовуючи ці властивості колекції ми можемо вивести список всіх робочих книг і взятися до роботи з будь-якою з них.

Одержання списку робочих книг і посилання на обрану робочу книгу:

procedure TOKBottomDlg2. FormCreate (Sender: TObject);

var a_:integer;

begin

WorkBooks:=Forml.E.WorkBooks;

for a_:=l to WorkBooks. count do begin

ListBoxl.Items.Add (WorkBooks.Item[a_]. name+

1; '+Workbooks.Item[a_]. FullName);

end;

end;

procedure TOKBottomDlg2. ListBoxlClick (Sender: TObject);

begin

WorkBooks.item[ListBoxl.Itemlndex+l]. Activate;

WorkBook:=WorkBooks.item[ListBoxl.Itemlndex+l];

end;

Для активізації робочої книги із списку відкритих використовується метод Activate об'єкту Item (i:integer), де i — індекс відкритої робочої книги, а об'єкт Item (i:integer) є посиланням на робочу книгу.

Після того, як робоча книга вибрана, її можна редагувати, зберегти під колишнім або іншим ім'ям і закрити. Для цього використовуємо методи Save, SaveAs і Close.

Збереження робочої книги:

procedure TOKBottomDlg2. Button2Click (Sender: TObject);

begin

WorkBook.Save;

end;

procedure TOKBottomDlg2. Button3Click (Sender: TObject);

begin

if not SaveDialogl. Execute then exit;

WorkBook.SaveAs (SaveDialogl.FileName);

end;

Закриття робочої книги:

procedure TOKBottomDlg2. Button6Click (Sender: TObject);

begin

Workbook.Close;

end;

3.3.2 Робота з аркушами робочої книги

Аркуш, комірки якого безпосередньо зберігають інформацію, є приналежністю книги. В робочій книзі може бути більше одного аркуша. Доступ до списку аркушів або до будь-якого аркуша робочої книги можна отримати за допомогою колекції Sheets. Як і будь-яка колекція, вона містить властивість Count: integer (кількість елементів колекції) і набір об'єктів Item (i:integer) — власне аркуши, де i — індекс вибраного аркуша (від 1 до Count). Деякі методи колекції Sheets: Select — виділення всіх аркушів робочої книги, Copy — копіювання всіх аркушів в нову робочу книгу, PrintPreview — попередній перегляд друку, Printout — вивід на друк, Add — додавання нового аркушу в робочу книгу.

Розглянемо метод Add докладніше. Його можна використовувати як без аргументів, так і з аргументами, що визначають місце, куди будуть додані аркуші (аркуш), їх кількість і тип. Якщо використовувати метод Add так, як показано в наступному прикладі, то буде додано аркуш перед аркушем Sheet:

procedure TOKBottomDlg3. ButtonlClick (Sender: TObject);

begin

Sheets.Add (Before:=Sheet);

end;

Додавши аркуші або просто відкривши або створивши робочу книгу, ми можемо отримати список аркушів і доступ до будь-якого аркуша робочої книги.

Отримання списку аркушів робочої книги:

procedure TOKBottomDlg3. FormCreate (Sender: TObject);

var a_:integer;

begin

for a_:=l to Sheets. count do ListBoxl.Items.Add (Sheets.Item[a_]. name);

end;

Отримання доступу до аркуша робочої книги:

var Sheet: variant;

procedure TOKBottomDlg3. ListBoxlClick (Sender: TObject);

begin

Sheet :=Sheets. item[List.Boxl. ItemІndex+l];

end;

Для того, щоб перейменувати вибраний робочий аркуш, у властивість Name записується нове значення імені аркуша, наприклад:

Sheet.Name: = 'Новий аркуш';

За допомогою методу Сору об'єкту Sheet можна скопіювати аркуш і його зміст. Цей метод дозволяє копіювати аркуш і вставляти копію або до, або після оригіналу — це залежить від значення аргументу методу Сору:

Sheet.Copy (before:=Sheet);

або

Sheet.Copy (after:=Sheet);

Після роботи з книгою може знадобитися видалити деякі аркуші. Для цього призначений метод Delete об'єкту Sheet:

Sheet.Delete;

Для доступу до комірок можна використовувати два різні об'єкти — об'єкт типа Range, який асоціюється з областю комірок, або безпосередньо об'єкт Cell (комірка аркуша робочої книги). Якщо перший об'єкт зручний для роботи з цілими областями комірок, то другий більше підходить для роботи з окремо взятою коміркою. Ці об'єкти належать об'єкту «аркуш» і вимагають завдання координат комірки або області комірок при зверненні до них. Наприклад, для завдання об'єкту, асоційованого з областю комірок A1: D5 використовуємо наступний оператор:

MyRange:=Sheet.Range[Al:D5];

де Sheet — посилання на аркуш робочої книги. Після вдалого виконання даного оператора змінна MyRange: variant містить посилання на об'єкт, асоційований з вибраною областю комірок.

Забезпечити доступ до окремої комірки можна з допомогою як об'єкту Range, так і об'єкту Cell. Використання останнього в операторі отримання доступу до комірки може виглядати так:

MyCell:=Sheet.Cells[1,1];

При виконанні даного оператора змінна MyCell зберігатиме посилання на комірку А1.

Запис інформації в комірки аркуша робочої книги:

procedure T0KBottomDlg4. ButtonlClick (Sender: TObject);

var a_:integer;

begin

randomize;

for a_:=l to 100 do Sheet. Cells (a_, 1):=random (10 000);

end;

Якщо для запису в комірки об'єкту Cells (row, column) привласнюється значення, то для зчитування даних використовується оператор, в якому строковій змінній привласнюється значення об'єкту Cells (row, column).

3.3.3 Робота з комірками

Основа введення і відображення інформації в робочих книгах Excel — робота з комірками аркуша. Кожна комірка є об'єктом з безліччю властивостей, необхідних для відображення інформації. Основною властивістю кожної комірки є її зміст або значення. Але часто буває недостатньо просто відобразити яке-небудь значення, будь то рядок або число, тому для кращого сприйняття інформації використовується таке поняття, як спосіб відображення. На спосіб відображення впливають такі чинники, як формат уявлення, різні способи розміщення значення щодо меж комірки, шрифт, товщина і колір ліній меж, а також колір і стиль заливки комірки.

Для доступу до всіх властивостей і вмісту комірок в Excel використовуються два об'єкти — Range і Cells. Між ними є тільки одна відмінність — перший об'єкт забезпечує доступ до області комірок, а другий — тільки до однієї комірки. Для завдання адреси комірок, на які потрібно отримати посилання, використовуються аргументи цих методів. Для Range аргументом є рядок адреси, а для Cells — номери рядка і стовпця.

Так, наприклад, для отримання посилання на об'єкт-область можна використовувати наступний оператор:

MyRange: =Е. ActiveSheet. Range [' В2 ' ] ;

Оператор з використанням об'єкту Cells:

MyRange:=E.ActiveSheet.Cells[2,2];

Змінна, яку відображає комірка, зберігається у властивостях Text і Value об'єкту Range (Cells), тому для того, щоб її отримати, достатньо зчитати значення однієї з цих властивостей. Якщо тип даних (формат) значення комірки невідомий використовуємо властивість Text, щоб отримати його у вигляді рядка. Коли тип даних відомий, можна спробувати використовувати властивість Value.

Висота і ширина комірки Використовуючи властивості ColumnWidth і RowHeight об'єктів Range або Cells, можна змінити ширину і висоту комірки. Очевидно, що ці зміни спричинять зміни ширини стовпця і висоти рядка. Як приклад використання цих властивостей розглянемо процедури, що дозволяють змінити розміри заданої комірки:

procedure TOKBottomDlg5. ColumnWidthChange (Sender: TObject);

begin

Columns.Item (col).ColumnWidth:=StrToFloat (ColumnWidth.Text);

end;

procedure TOKBottomDlg5. RowHeightChange (Sender: TObject);

begin

Rows.Item (row).RowHeight:=StrToFloat (RowHeight.Text);

end;

Вирівнювання тексту в комірці

Значення, що відображається, можна розмістити в комірці Excel по-різному. Звичайно спосіб розміщення відповідає типу і величині значення комірки. Для числових даних текст зміщений до правої межі, а для строкових — до лівої межі комірки, але бувають виключення. Виключення з правил визначаються вимогами, що припускають ефективне відображення інформації для більш повного її сприйняття. В таких випадках і використовують властивості комірки, що дозволяють задати режими горизонтального і вертикального вирівнювання, встановити режим переносу по словах і вибрати кут повороту тексту.

Розглянемо ці властивості. Наступний програмний код задає режими горизонтального і вертикального вирівнювання тексту по центру.

Вирівнювання тексту в комірці:

const

xlHAlignCenter = -4108;

xlVAlignCenter = -4108;

procedure TOKBottomDlg8. HorizontalAlignmentChange (Sender: TObject);

begin

range.HorizontalAlignment:=xlHAlignCenter;

end;

procedure TOKBottomDlg8. VerticalAlignmentChange (Sender: TObject);

begin

range.VerticalAlignment:=xlVAlignCenter;

end;

Якщо довжина тексту перевершує ширину комірки, то це може спричинити за собою спотворення відображення значення комірки. Для вирішення цієї проблеми можна скористатися режимом переносу по словах. Він включається коли властивість комірки WrapText встановлена в значення True, і відключається, коли властивість WrapText встановлена в значення False.

Перенос по словах:

procedure TOKBottomDlg8. WrapTextClick (Sender: TObject);

begin

Range.WrapText:=WrapText.Checked;

end;

Ще один спосіб зміни розташування тексту в комірці - його поворот. Поворот тексту, що відображає значення комірки, визначається властивістю Orientation і може бути заданий величиною від -90 до +90 градусів.

Поворот тексту в комірці:

procedure TOKBottomDlg8. OrientationChange (Sender: TObject);

begin

Range.Orientation:=Orientat ion. Value;

end;

Якщо довжина тексту, розміщуваного в комірці, настільки велика, що він не може бути розміщений там без істотних змін розмірів комірки, а за конкретних умов задачі розміри рядків і стовпців змінювати не можна, то слід використовувати режим об'єднання комірок. Об'єднання комірок здійснюється установкою в значення True властивості MergeCells об'єкту Range, асоційованого з областю комірок:

procedure T0KBottomDlg9. MergeCellsClick (Sender: TObject);

begin

Range.MergeCells:=MergeCells.Checked;

end;

Межі комірки Комірка є прямокутною областю. Ця область, окрім значень, які відображаються в ній, має такі властивості, як заливка і межа. Як заливка осередку, так і межа мають відповідні властивості (колір, товщину, тип, узор, колір узору). Розглянемо ці властивості докладніше. Межі комірки є лініями, що обмежують її з чотирьох сторін. Лінії з'єднані в колекцію Borders, доступ до будь-якої з них здійснюється через елементи цієї колекції. Кожний елемент колекції надає доступ до відрізка прямій, прилеглому до тієї або іншої сторони комірки. Діагоналі комірки також є елементами цієї колекції. Кожний елемент колекції Borders є об'єктом і має свої індивідуальні властивості, що дозволяє задати тип лінії і колір окремо для кожної лінії межі комірки. Наступні процедури дозволяють встановити товщину, тип і колір лінії межі вибраної комірки:

// Встановлюємо товщину лінії межі комірки

procedure TOKBottomDlg6. WeightChange (Sender: TObject);

begin

Border.Weight:=Weight.Itemlndex;

end;

// Встановлюємо тип лінії межі комірки

procedure T0KBottomDlg6. LineStyleChange (Sender: TObject);

begin

Border.LineStyle:=xlDouble;

end;

// Встановлюємо колір лінії межі комірки

procedure T0KBottomDlg6. ButtonlClick (Sender: TObject);

begin

if not ColorDialogl. Execute then exit;

Border. Color: =ColorDialogl. Color;

end;

Заливка комірки Заливка комірки визначається комбінацією наступних складових — кольору, узору і кольору узору, що заповнює простір комірки. Програмний доступ до параметрів заливки забезпечує властивість Interior об'єкту Range, де Range — посилання на комірку або область. Властивість Interior представляє собою об'єкт, властивості якого пов’язані з візуальними властивостями внутрішнього простору комірки.

Колір заливки визначається властивістю Color об'єкту Interior і задається як комбінація трьох кольорів: Color:=RGB (R, G, В); де R, G, В — числові значення, відповідні червоному, зеленому і синьому кольорам. Колір заливки можна також задати як вибраний на палітрі кольорів — для цього використовується властивість ColorІndex об'єкту Interior.

Узор заливки області комірки визначається властивістю Pattern, а її колір — властивістю PatternColor об'єкту Interior. Колір також можна вибрати на палітрі кольорів Excel шляхом запису у властивість PatternColorІndex індексу вибраного кольору.

3.3.4 Пошук і заміна тексту

Пошук тексту виконується шляхом виклику методу Find.

Повна специфікація виклику методу Find:

Find (What, After, Lookln, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte);

В найпростішому випадку метод Find повинен містити один аргумент — шуканий текст. Якщо вимагається уточнити режим пошуку, то використовуються додаткові необов’язкові аргументи цього методу, які дозволяють визначити напрям пошуку, область пошуку і інші параметри.

Після успішного пошуку тексту метод Find повертає посилання на об'єкт-комірку, використовуючи який можна змінити зміст комірки. Повторюючи пошук і заміну багато разів, можна сформувати необхідний документ, але для цього є більш ефективний спосіб — використання функції пошуку і заміни. Ця функція в Excel реалізується методом Replace, який має два обов’язкові аргументи — шуканий текст і текст для заміни. Повна специфікація методу Replace:

Replace (What, Replacement, LookAt, SearchOrder, MatchCase, MatchByte);

3.3.5 Формули

Формула є математичним виразом, що складається з констант, адрес комірок, стандартних функцій Excel, призначених для користувача функцій і математичних символів, записаних у вигляді рядка. Для надання комірці таких властивостей використовують запис рядка, що представляє формулу, у властивість Formula об'єкту Range. Для зчитування формули також використовується властивість Formula.

Можливо також використання майстра функцій, що є послідовністю діалогових вікон, які дозволяють конструювати формулу для даної комірки по кроках. Для активізації даного способу необхідно викликати метод FunctionWizard об'єкту Range:

procedure TOKBottomDlg2. ButtonlOClick (Sender: TObject);

begin

Range.FunctionWizard;

end;

Іноді вимагається перевірити, що знаходиться в комірці - значення, записане користувачем, або сформоване в результаті виконання формули. Для цього можна аналізувати вміст властивості Formula об'єкту Range, але краще використовувати властивість HasFormula. Якщо воно має значення True, то комірка містить формулу, якщо False — то ні.

Перевірка наявності формули в комірці:

procedure TOKBottomDlg2. Button9Click (Sender: TObject);

begin

if Range. HasFormula

then messagebox (handle, 'Дана комірка містить формулу!','Увага!', 0)

else messagebox (handle,'Дана комірка не містить формулу!','Увага!', 0)

end;

Визначивши, що потрібна комірка містить формулу, ми можемо прочитати цю формулу з метою коректування або аналізу її вмісту.

Показати весь текст
Заповнити форму поточною роботою