Смекни!
smekni.com

Опис мови Delphi (стр. 2 из 3)

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

Об’єктно-орієнтоване програмуваннязасноване на трьох принципах:

· інкапсуляції;

· наслідуванні;

· поліморфізмі.

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

Наслідування означає, що якщо ви хочете створити новий клас, лише небагато чим, що відрізняється від того, що вже існує, то немає необхідності в переписуванні наново всіх полів, методів і властивостей. Ви оголошуєте, що новий клас є нащадком (або дочірнім класом) наявного класу, так званим предком (або батьківським класом), і додаєте до нього нові поля, методи та властивості. Іншими словами додається те, що потрібне для переходу від загального до приватного. Процес створення нових класів на основі інших класів називається наслідуванням. Нові класи мають як успадковані ознаки, так і нові.

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

2.2 Використання класів

Delphi підтримує дві моделі представлення об'єктів - стару і нову. Стара модель існує лише для сумісності з ранішими версіями компілятора, зокрема з Borland Pascal 7.0, тому ми її не розглядатимемо. Все, що сказане нижче, відноситься до нової моделі представлення об'єктів, могутнішої і багатшої по своїх можливостях. Для підтримка ООП в мову Object Pascal введена об'єктні типи даних, за допомогою яких одночасно описуються дані і операції над ними. Об'єктні типи називають класами, а їх екземпляри - об'єктами.

Класи об'єктів визначаються в секції type глобального блоку. Опис класу починається словом class і закінчується словом end. За формою оголошення класи схожі на звичайні записи, але крім полів даних можуть містити оголошення призначених для користувача процедур і функцій. Такі процедури і функції узагальнено називають методами, вони призначені для виконання над об'єктами різних операцій.

Заголовки методів, наступні за списком полів, грають роль попередніх (forward) оголошень. Програмний код методів поміщається нижче за визначення класу.

Клас, зазвичай, описує суть, що моделюється в програмі. Наприклад, клас Tdiskgauge описує вимірювач дискового простору. Клас містить два поля: Driveletter - буква накопичувача, що знаходиться під спостереженням, і Percentcritical - відсоток вільного простору на диску, з яким працює програма. Функція Getpercentfree визначена як метод роботи над будь-яким об'єктом класу Приведений вище опис є ні чим іншим, як декларацією інтерфейсу для управління об'єктами класу Tdiskgauge. Реалізація методів Getpercentfree і Checkstatus відсутня, але для створення і використання екземплярів класу вона поки і не потрібна. У цьому якраз і полягає сила інкапсуляції, яка робить об'єкти аналогічними програмним модулям. Для використання модуля необхідно вивчити лише його інтерфейсну частину, розділ реалізації для цього вивчати не потрібно.

2.3 Опис компоненту TDBChart

Для представлення даних з деякого набору даних у вигляді графіків різних видів призначений компонент Tdbchart. За його допомогою можна одночасно показувати графіки для декількох полів даних. Графіки будуються на основі всіх наявних в наборі даних значень полів.

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

Основою будь-якого графіка в компоненті Tdbchart є так звана серія, властивості якої представлені класом Tchartseries. Для того, щоб побудувати графік значень деякого поля набору даних, необхідно виконати наступні дії, більшість з яких виконується в спеціалізованому редакторі компоненту:

1. Створити нову серію і визначити її тип.

2. Задати для серії набір даних.

3. Пов'язати з осями координат потрібні поля набору даних і, залежно від типу серії, задати додаткові параметри.

4. Відкрити набір даних.

Редактор має дві головні сторінки - Chart і Series. Сторінка Chart містить багатосторінковий блокнот і призначена для настройки параметрів самого графіка. Сторінка Series також містить багатосторінковий блокнот і використовується для настройки серій значень даних.

Для створення нової серії необхідно в редакторові перейти на головну сторінку Chart, а на ній відкрити сторінку Series. На цій сторінці потрібно клацнути на кнопці Add, а потім в діалозі, що з'явився, вибрати тип серії. Після цього в списку на сторінці Series з'являється рядок нової серії. Тут можна перевизначити тип, колір і видимість серії, клацнувши на відповідній зоні рядка. Решта всіх сторінок блокнота на головній сторінці Chart призначена для настройки параметрів графіка. Можна перейти на головну сторінку Series і на ній із списку назв серій вибрати необхідну. Після цього на сторінці Data Source із списку вибирається рядок Dataset. Далі в списку Dataset, що з'явився, вибирається потрібний набір даних.

Рис. 2.3.1. Спеціалізований редактор компоненту Tdbchart.


Рис. 2.3.2. Приклад використання компонента Tdbchart

Рис. 2.3.3. Можливі види графіків

Список X дозволяє вибрати поле набору даних, значення якого послідовно відкладатимуться по осі абсцис. Список Y дозволяє вибрати поле набору даних, значення якого будуть відкладені по осі ординат. Відповідність між значеннями полів по двох осях визначається приналежністю до одного запису набору даних. Вибір поля в списку Labels прив'язує його значення у вигляді міток до осі абсцис.

Тепер залишилося тільки відкрити набір даних і компонент Tdbchart побудує графік. Аналогічним чином на цей же компонент можна помістити і інші графіки. Кожна серія відповідатиме одній кривій на графіку.

Властивості компонента TDBChart:

1. Allowpanning - визначає можливість користувача прокручувати спостережувану частину графіка під час виконання, натискаючи праву кнопку миші:

· pmnone - прокрутка заборонена;

· pmhorizontal - дозволена прокрутка тільки в горизонтальному напрямі;

· pmvertical - тільки у вертикальному pmboth - в обох напрвленіях.

2. Allowzoom - дозволяє користувачеві змінювати під час виконання масштаб зображення, вирізуючи фрагменти діаграми або графіка курсором миші.

3. Title - визначає заголовок діаграми.

4. Foot - визначає підпис під діаграмою. За замовчанням - відсутній. Текст підпису визначається підвластивістю Text.

5. Frame - визначає рамку навколо діаграми.

6. Legend - легенда діаграми (список позначень).

7. Marginleft, Marginright, Margintop, Marginbuttom - значення лівого, правого, верхнього і нижнього полів.

8. Buttomaxis, Leftaxis, Rightaxis - ці властивості визначають характеристики відповідно нижньої, лівої і правої осей. Завдання цих властивостей має сенс для графіків і деяких інших типів діаграм.

9. Leftwall, Buttomwall, Backwall - ці властивості визначають характеристики відповідно лівої, нижньої і задньої граней області тривимірного відображення графіка.

10. Serieslist - список серій даних, що відображаються в компоненті

11. View3d - дозволяє або забороняє тривимірне відображення діаграми.

12. View3doptions - характеристики тривимірного відображення.

13. Chart3dpersent - масштаб тривимірності (товщина діаграми, ширина стрічок графіка).

Редактор діаграм викликається:

· кнопкою з три крапкою поряд з назвою властивості в інспекторові об'єктів;

· подвійним клацанням на компоненті Chart при проектуванні форми;

· вибором команди Edit Chart в контекстному меню компоненту Chart при проектуванні форми.

Для задання значень, що відображаються, треба використовувати методи серій Series:

· clear - очищає серію від занесених раніше даних;

· add - дозволяє додати в діаграму нову точку:

Add(Const Avalue:double; Const Alabel:string; Acolor:tcolor)

Параметр Avalue відповідає значенню, що додається, параметр alabel - назва, яка буде відображатися на діаграмі і в легенді, параметр Acolor - колір. Параметр alabel необов'язковий, його можна задавати порожнім.

· addxy - дозволяє додати нову крапку в графік функції:

· ADDXY(Const Axvalue, Ayvalue: Double; Const Alabel: String; Acolor: Tcolor). Параметри Axvalue іayvalue відповідають аргументу і функції, параметри Alabel і Acolor - ті ж, що і в методі Add.

2.4 Робота з файлами в Delphi

Середовище Delphi дає вам можливість вибрати один з чотирьох варіантів роботи з файлами:

1. використання традиційного набору функцій роботи з файлами, успадкованого від Turbo Pascal;

2. використання функцій введення/виводу з Windows API;

3. використання потоків (rstream і його нащадки);

4. використання файлів, що відображаються.

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

При організації операцій файлового введення/виведення у додатку велике значення має, якого роду інформація міститься у файлі. Частіше за все це - рядки, але зустрічаються двійкові дані або структурована інформація, наприклад масиви або записи.