Лабораторна робота №2
Компоненти Delphi.
Архітектура проекту в середовищі програмування DELPHI
Мета роботи: ознайомитись з компонентами Delphi, їх властивостями, методами та подіями, розглянути особливості побудови прикладних програм із використанням компонент Delphi; вивчити побудову проекту в середовищі програмування Delphi, призначення та зміст файлів проекту.
Порядок виконання роботи:
Створити проект для виконання індивідуального завдання.
Оформити звіт для захисту лабораторної роботи за зразком
назва роботи
мета роботи
зміст індивідуального завдання
тексти головного файлу проекту, програмних модулів та файлів форм
аналіз отриманих результатів та висновки
Теоретичні відомості
Компоненти Delphi
Компоненти Delphi є основою для створення прикладних програм. З точки зору користувача компоненти - це об’єкти (екземпляри певного класу), за допомогою яких можна створити інтерфейс програми або додати невізуальні елементи. З точки зору розробника, компоненти – це код на мові Object Pascal, організований у вигляді класів, які визначають стан (за допомогою властивостей) та поведінку (за допомогою методів та подій) для елементів, що додаються до ужитку.
У Delphi компоненти об’єднані в чітке ієрархічне дерево класів, початковим вузлом якого є клас TComponent. У довідковій системі можна переглянути місце в ієрархічному дереві кожної окремої компоненти. Компоненти, що розроблені фірмою Borland, утворюють бібліотеку VCL (Visual Component Library).
Таким чином, з погляду програмування робота з компонентами означає роботу з класами. Крім класів з бібліотеки VCL, можна створити і використовувати власні класи та відповідні їм компоненти. До компонент у програмі звертаються за звичайними правилами мови програмування Object Pascal як до екземплярів класу.
Для розробки програм необхідно орієнтуватися в переліку та можливостях компонент VCL. Компоненти розташовані в палітрі компонент на окремих сторінках, що розділені відповідними закладками. У різних версіях Delphi перелік та зміст сторінок у палітрі можуть змінюватися. Для налаштування палітри можна використати пункт головного меню Delphi Component та його підпункти.
Основні компоненти VCL
Сторінка Standard
Ім’я
Застосування
MainMenu
Головне меню програми
PopupMenu
Спадне меню
Label
Текстовий напис
Edit
Текстовий редактор для одного рядка
Memo
Багаторядковий текстовий редактор
Button
Командна кнопка
CheckBox
Незалежний перемикач
RadioButton
Залежний перемикач
ListBox
Список вибору
ComboBox
Комбінований список вибору
ScrollBar
Смуга перегляду
GroupBox
Група елементів
RadioGroup
Група залежних перемикачів
Panel
Панель
ActionList
Список дій
Сторінка Additional
Ім’я
Застосування
BitBtn
Командна кнопка з написом та піктограмою
SpeedButton
Командна кнопка з піктограмою
MaskEdit
Текстовий редактор для одного рядка з маскуванням
StringGrid
Таблиця текстових рядків
DrawGrid
Довільна таблиця
Image
Малюнок
Shape
Геометрична фігура
Bevel
Рамка
ScrollBox
Панель зі смугами перегляду
CheckListBox
Список множинного вибору
Splitter
Границя
StaticText
Статичний текст
ControlBar
Панель змінної конфігурації
ApplicationEvents
Події ужитку
Chart
Діаграма
Сторінка Win32
Ім’я
Застосування
TabControl
Контейнер з набором закладок
PageControl
Набір панелей з закладками
ImageList
Контейнер для зберігання набору малюнків
RichEdit
Редактор форматованого тексту
TrackBar
Смуга для зміни числових величин
ProgressBar
Індикатор процесу
UpDown
Кнопки для зміни числових величин
HotKey
Клавіша керування
Animate
Вікно для перегляду AVI-файлів
DataTimePicker
Селектор дати і часу
MonthCalendar
Календар
TreeView
Дерево вибору
ListView
Панель піктограм
HeaderControl
Контейнер заголовків колонок
StatusBar
Панель статусу
ToolBar
Інструментальна панель
CoolBar
Панель змінної конфігурації
PageScroller
Інструментальна панель
Сторінка System
Ім’я
Застосування
Timer
Годинник
PaintBox
Вікно для малювання
MediaPlayer
Мультимедійний програвач
OLEContainer
OLE-контейнер
DDEClientConv
DDE-зв’язок (клієнтський)
DDEClientItem
DDE-елемент (клієнтський)
DDEServerConv
DDE-зв’язок (серверний)
DDEServerItem
DDE-елемент (серверний)
Сторінка Dialogs
Ім’я
Застосування
OpenDialog
Діалогове вікно для відкриття файлу
SaveDialog
Діалогове вікно для збереження файлу
OpenPictureDialog
Діалогове вікно для відкриття графічного файлу
SavePictureDialog
Діалогове вікно для збереження графічного файлу
FontDialog
Діалогове вікно для вибору шрифту
ColorDialog
Діалогове вікно для вибору кольору
PrintDialog
Діалогове вікно для вибору принтера і налаштування друку
PrinterSetupDialog
Діалогове вікно для налаштування принтера
FindDialog
Діалогове вікно для пошуку тексту
ReplaceDialog
Діалогове вікно для пошуку та заміни тексту
До палітри компонент також належать сторінки DataAccess, DataControls, Samples, Interbase, Win3.1, ActiveX та інші.
Архітектура проекту в середовищі програмування DELPHI
Проект Delphi складається з декількох пов’язаних файлів. Деякі з них створюються при написанні програми і побудові форм, інші при компіляції проекту. Для ефективної роботи з проектами Delphi необхідно знати призначення кожного файла. Дані теоретичні відомості стосуються Delphi 5, для попередніх та наступних версій можливі певні відмінності. Будь-який проект містить не менше шести пов’язаних з ним файлів.
Всі файли, що відносяться до певного проекту слід обов’язково розміщувати в одному окремому каталозі. Можна задати автоматичне збереження файлів проекту при кожному завантаженні ужитку на виконання з допомогою опції Autosave options на сторінці Preferences пункту головного меню Tools(Environment Options.
Головний файл проекту (*.dpr)
Цей файл є обов’язковим при написанні прикладної програми. У ньому, як правило, розміщується код, що виконується при старті програми, зокрема, створюється головна форма.
Рис. 1. Типовий код головного файлу проекту
В операторі uses перелічується список усіх модулів, що використовуються в даному проекті.
Рядок {$R *.RES} повідомляє компілятору, що він повинен зв’язати з проектом файл ресурсів, який має те саме ім’я, що і головний файл, але розширення .res.
Блок begin .. end містить основний код проекту, до якого можна додати свій власний код.
Програмні модулі проекту (*.pas)
Це вихідні файли програми на Object Pascal. Їх можна поділити на три основні типи: модулі форм, модулі загального призначення і модулі компонент.
Модулі форм автоматично генеруються Delphi для кожної створеної форми. Неможливо створити в одному модулі дві форми.
Модулі загального призначення створюються програмістом і містять різні типи даних, класи, змінні, об’єкти, процедури і функції, методи класів, що будуть доступними для цього ужитку.
Модулі компонент генеруються Delphi при написанні нової компоненти.
Рис. 2. Приклад коду програмного модуля
Файли форм (*.dfm)
При створенні нової форми крім програмного модуля (з розширенням .pas) Delphi генерує файл, що містить її текстове або бінарне представлення. У програмному модулі форми міститься рядок {$R *.DFM}. Цей рядок вказує компілятору, що він повинен зв’язати з проектом відповідний файл форми, з тим самим ім’ям, що і програмний модуль, але з розширенням .dfm.
У файлі форми зберігаються налаштування, зроблені в Інспекторі Об’єктів. Також файл форми можна редагувати безпосередньо. Для цього його можна відкрити у редакторі Delphi або натиснути праву кнопку миші в дизайнері форм і вибрати зі спадного меню пункт View as Text. Змінювати файл форми потрібно дуже обережно, некоректні зміни будуть довільним чином виправлятись середовищем Delphi.
Формати файлів форм різних версій Delphi відрізняються. Зокрема, для кодування кирилиці, починаючи з Delphi 6, використовується Unicode, що може зробити неможливим роботу з проектом Delphi 6 у попередніх версіях. Для усунення цього можна уникати вживання кирилиці, або використовувати відповідні програми-конвертери.
Рис. 3. Приклад коду файлу форми
Головний файл проекту, програмні модулі та файли форм є необхідними для відтворення програмного коду при перенесенні проекту на інший комп’ютер. Розміщення цих файлів можна уточнити за допомогою Менеджера Проекту (пункт головного меню View(Project Manager).
Для перегляду змісту файлів проекту використовуються пункти головного меню View(Units та View(Forms. Додати нові програмні модулі до проекту можна за допомогою пункту головного меню Project(Add to Project, а вилучити існуючі - Project(Remove from Project. Також можна скористатись відповідними комбінаціями клавіш або кнопками швидкого доступу.
Файл ресурсів (*.res)
Містить бінарні дані (ресурси), які зв’язуються з виконавчим файлом прикладної програми. Цей файл автоматично створюється Delphi, зокрема, містить піктограму проекту, та інформацію про версію програми. Якщо необхідно змінити або додати нові ресурси, можна відредагувати існуючий файл ресурсів, або створити новий і пов’язати його з проектом. Це можна зробити за допомогою Image Editor (викликається з пункту головного меню Tools).
Щоб використати готовий малюнок як піктограму проекту, слід перетворити його до формату *.ico (розміром 16x16 або 32x32) і вибрати цей файл за допомогою пункту головного меню Project(Options на сторінці Application.
Після компіляції програми отримуються файли з розширеннями:
.dcu - скомпільовані модулі;
.exe - файл виконання, або
.dll – бібліотека динамічного компонування (для її створення у головному файлі проекту замість program використовують ключове слово library).
Назва файлу виконання або бібліотеки динамічного компонування збігається з назвою головного файлу проекту.
Файли опцій проекту та налаштувань робочого столу (*.dof, *.cfg, *.dsk)
Ці файли відносяться до управління проектом із середовища і можуть не змінюватись програмістом.
Файли опцій проекту з розширеннями .dof та .cfg зберігають установки, визначені в меню Project(Options. Ці файли створюються Delphi при першому збереженні проекту і оновлюються при кожному наступному.
Файли налаштувань робочого столу з розширенням .dsk зберігають опції, визначені в меню для робочого столу середовища Delphi.
Резервні файли (*.~*)
Delphi створює резервні файли для головного файлу проекту і програмних модулів при другому та наступних збереженнях. Резервні файли містять передостанню версію коду і мають розширення .~dp, .~pa. Резервний файл форми також створюється при другому та наступних збереженнях і має розширення .~df. Від створення цих файлів можна відмовитись з допомогою опції Create backup file на сторінці Display пункту головного меню Tools(Editor Options.
Файли пакетів (*.dpk, *.dcp)
Пакети - це динамічні бібліотеки класів або компонент, що спільні для багатьох прикладних програм. Вихідні файли пакетів мають розширення .dpk, cкомпільовані модулі - розширення .dcu, файл з бінарним кодом для dpk-файлу має розширення .dcp.
Питання для самоконтролю
1. Що таке компонента Delphi?
2. Для чого використовуються компоненти Delphi?
3. Як можна класифікувати компоненти? За яким принципом компоненти розподілені по сторінках у палітрі?
4. Які основні ознаки компонент?
Наведіть приклади візуальних та невізуальних компонент.
Опишіть структуру проекту в середовищі Delphi.
Які файли є обов’язковими у проекті ?
Що зберігається в файлах з розширеннями .dpr, .dfm ?
Для чого призначений Менеджер Проекту ?
Як можна додавати і вилучати файли в проекті ?
Які файли створюються при збереженні і компіляції проекту ?
Завдання
А. Використовуючи компоненти Memo та OpenDialog створити програму для перегляду та редагування текстових файлів (з можливостями відкриття та збереження файлів на диску).
B. Додати до програми нові можливості у відповідності з індивідуальним завданням.
Перевірити наявність файла на диску перед відкриттям.
Запитати у користувача підтвердження при записі змін у відкритий файл.
Реалізувати програму з використанням стандартної компоненти збереження файлу.
Додати можливість створювати та зберігати нові файли.
Додати повідомлення про неможливість редагування нетекстових файлів.
Додати можливість перегляду файлів з малюнками.
Додати можливість вибору шрифту.
Передбачити можливість тільки перегляду файлів.
Додати спадне меню з розширеннями при відкритті файлів.
Додати можливість пошуку потрібного файлу на дереві вибору (Підказка - використати компоненти DriveComboBox, DirectoryListBox, FileListBox).
Додати на форму назву файла, що редагується та покази секундоміра.
Задати певний тип розширення, файли з яким програма не буде змінювати.
Використати замість Memo компоненту RichEdit.
Додати можливість виконання дій за допомогою головного меню та “гарячих клавіш”.
Додати можливість виконання дій за допомогою спадного меню.
Додати можливість виконання дій за допомогою інструментальної панелі.
Додати на форму покази секундоміра зі зворотнім відліком.
Вивести інформацію про зміну у файлі на панель статусу.
Рекомендована література
Архангельский А. Я. 100 компонентов общего назначения библиотеки Delphi 5 - файл 100comp.chm.
Архангельский А.Я. Delphi 6. Справочник. – М.: Бином, 2001.
Кенту М. Delphi 7 для профессионалов. – С.-Петербург, Питер – 2004.
Тейксейра С., Пачеко К. Borland Delphi 6. Руководство разработчика. – М. Изд. дом Вильямс, 2002.