Лекція 2. Основні характеристики системи
візуального програмування Delphi
Вступ
Delphi – продукт корпорації Borland International. Система Delphi дозволяє швидко та ефективно розробляти найрізноманітніші програми. Delphi є достатньо потужною системою візуального об’єктно-орієнтованого програмування. Дана система дає можливість створювати зручний користувацький інтерфейс, а широкий набір функцій, методів та властивостей дає можливість вирішувати прикладні розрахунково-обчислювальні задачі. В систему включено також зручні засоби відлагоджування. Традиційно Delphi відносять до RAD-систем (Rapid Application Development – швидка розробка програм). Це технологія візуального програмування, коли програміст оформляє свою майбутню програму і бачить результати своєї роботи ще до запуску програми.
Інтерфейс Delphi 7
Прикладні програми Delphi створюються в інтегрованому середовищі розробки (IDE – Integrated Development Environment). Користувацький інтерфейс даного середовища служить для взаємодії з програмістом і включає декілька вікон, які містять різні елементи керування. За допомогою засобів IDE розробнику зручно проектувати інтерфейсну частину програми, а також писати програмний код і зв’язувати його з елементами керування. В IDE проходять усі етапи створення програм, включаючи відлагодження.
Інтегроване середовище розробки Delphi 7 являє собою багатовіконну систему. Вигляд IDE, тобто користувацький інтерфейс, може відрізнятись залежно від налаштувань. Після завантаження інтерфейс Delphi 7 включає шість вікон.
Головне вікно (Delphi 7 – Project1), яке містить головне меню,панелі інструментів та палітру компонент. Панель інструментів являє собою набір кнопок для швидкого доступу до потрібної функції меню. На палітрі компонент, яка являє собою декілька тематичних сторінок, розміщені візуальні та невізуальні компоненти майбутньої програми (невізуальні компоненти видно лише при проектуванні програми).
Вікно Форми або Конструктора форми (Form1) спочатку розміщене в центрі екрану. В ньому проектується форма під час якого візуально конструюється форма з використанням Палітри компонент, а дії розробника схожі на роботу в середовищі простого графічного редактора.
Вікно Редактора коду (Unit1.pas) спочатку містить одну вкладку Unit1 вихідного коду модуля форми Form1. Редактор коду являється звичайним текстовим редактором, за допомогою якого можна вводити програмний код, редагувати текст модуля та інші текстові файли, наприклад, файл проекту. Кожен файл, який редагується, знаходиться у вікні Редактора коду на окремій сторінці, а його ім’я відображається на вкладці у верхній частині цього вікна.
Вікно Провідника коду (Exploring Unit1.pas) розміщене зліва біля Редактора коду. У ньому у вигляді дерева відображені усі об’єкти модуля, наприклад, змінні та процедури. В цьому вікні зручно переглядати об’єкти програми і швидко переходити до потрібних об’єктів, що є важливим для великих модулів.
Вікно Виду дерева об’єктів (Object Tree View) після запуску системи розміщене під Головним вікном і відображає деревовидну структуру об’єктів поточної форми. Дане вікно зручно використовувати у випадку форм, призначених для обробки баз даних, оскільки воно дозволяє змінювати зв’язки між компонентами.
Вікно Інспектора об’єктів (Object Inspector) знаходиться у лівій частині екрану і відображає властивості і події об’єктів для поточної форми. Дане вікно містить дві сторінки. На першій, Properties, відображаються усі доступні властивості вибраної компоненти: лівій колонці міститься список, у правій – поточні значення по замовчуванню. На другій сторінці, Events, відображаються можливі обробники подій для вибраної компоненти: у лівій колонці – назви, у правій – відповідні властивості і процедури.
Коротко дамо пояснення властивостей та обробників подій. Кожен об’єкт Delphi, включаючи вікно програми, мають певні властивості. Наприклад, колір, розмір і т.п. Дані властивості можна змінювати ще до запуску програми на виконання. В залежності від змінюваної властивості результат можна проглядати вже відразу. Реакції на певні системні події, наприклад клік на мишку, натиснення на кнопку, відкриття вікна і т.п., назначають програмно за допомогою процедур. Такі процедури називають обробниками подій або просто обробниками.
Не зважаючи на наявність багатьох вікон, Delphi є однодокументним середовищем і дозволяє працювати лише з одним проектом програми. Назва проекту програми виводиться у заголовку головного вікна у верхній частині екрану. При згортанні головного вікна згортається увесь інтерфейс Delphi і, відповідно, усі інші вікна. При закритті головного вікна робота з Delphi припиняється.
Складові проекту
Програма, що розробляється в середовищі Delphi, складається з декількох файлів, об’єднаних у проект. У склад проекту входять:
файл проекту (.dpr) – містить основний код програми, посилання на усі форми проекту і на модулі, що відносяться до них; також містить код ініціалізації; має одноіменну назву з проектом; щоб переглянути вмістиме даного файлу у редакторі коду, необхідно вибрати команду Project\View Source;
модулі і модулі форм (.pas) – містить текст модуля програми, оформлений за правилами мови Object Pascal;
файл форми (.dfm) – містить повні дані про проектування форми: позиція, розмір, включені компоненти і т.п.; щоб переглянути вмістиме даного файлу у редакторі коду, необхідно вибрати команду View as Text контекстного меню форми; форма є невід’ємною частиною модуля і має ту ж назву;
файл параметрів проекту (.dof) – це текстовий файл, у якому по рядках записані параметри проекту і їх значення; для налаштування параметрів проекту використовується команда Project\Option;
файл параметрів середовища (.cfg) – містить налаштування конфігурації проекту;
файл ресурсів (.res) – містить в собі іконки, значки вказівника мишки, картинки, звуки; для роботи з такими файлами у склад Delphi включено графічний редактор Image Editor, який викликається командою Tools\ Image Editor.
У процесі роботи в середовищі Delphi можуть автоматично створюватись файли з розширенням, яке починається символом ~. Це резервні копії файлів, які створюються при їх повторному збереженні.
Компіляція та виконання проекту
Перед тим як запустити програму на виконання необхідно переконатись, що текст програми не містить синтаксичних помилок. Для виявлення синтаксичних помилок програма компілюється і компонується. Зауважимо, що в Delphi стадії компіляції та компонування не відділяються і виконуються послідовно. Тому виконання цих двох операцій будемо називати компіляцією.
Скомпілювати проект можна на будь-якій стадії розробки. Це зручно для перевірки вигляду і правильності функціювання окремих компонент форми, а також для тестування фрагментів програмного коду.
У процесі компіляції проекту створюється готовий до використання файл, яким може бути програма (.exe) або динамічно завантажувана бібліотека (.dll). Ім’я програми після компіляції співпадає з іменем файла проекту, а сама програма є автономною і не потребує для своєї роботи додаткових файлів Delphi. Однак, якщо у процесі виконання програми динамічно використовуються інші файли, наприклад, зображення або файли допомоги, то такі файли повинні подаватись з програмою.
Компіляція програми може виконуватись декількома способами.
Командою головного меню Run\Run або клавішею F9 відбувається компіляція програми з подальшим запуском програми. Якщо компіляція пройшла успішно, створюється виконавчий файл (.exe), який запускається на виконання. Якщо проект складається з декількох модулів, то компілюються лише ті, які були змінені з моменту останньої компіляції, що суттєво економить час.
Іншим способом компіляції програми є виконання команди головного меню Командою Project\Compile <ім’я проекту> або комбінацією клавіш Ctrl+F9. У цьому випадку компілюються усі файли проекту, в яких після останньої компіляції відбулись зміни. Компілюються також файли, які залежать від цих змін. Крім того, програма-проект у цьому випадку завжди перекомпілюється.
Компіляцію усіх без виключення файлів проекту виконується командою Project\Build <ім’я проекту>. При цьому компілюються усі файли, що входять у проект, незалежно від того чи були внесені у них зміни.
Крім застосування вищевказаних способів, для компіляції проектів можна використовувати команди Project\Compile All Projects та Project\Build All Projects, які застосовуються при роботі з групами проектів.
Розробка програми
Будь-яка програма Windows виконується у відповідному вікні. Delphi – це середовище розробки програм під Windows, тому для будь-якої програми автоматично пропонується вікно (форма), для якої вже створено два файла – з описом і модулем. Таким чином створюється найпростіша програма. Найпростіша програма являє собою заготовку або каркас, який забезпечує розробника усім необхідним для програми. Так не потрібно писати свій обробник подій клавіатури або драйвер мишки, а також створювати пакет процедур для роботи з вікнами. При розробці до найпростішої програми додаються нові форми, елементи керування, а також нові обробники подій.
Розробка програми в Delphi включає два взаємозв’язаних етапи: створення користувацького інтерфейсу і визначення функціональності програми. Користувацький інтерфейс програми визначає спосіб взаємодії користувача та програми, а саме, зовнішній вигляд форм при виконанні програми і те, яким чином користувач може керувати програмою. Інтерфейс розробляється шляхом розміщення у формі компонент, які називаються інтерфейсними компонентами або елементами управління. Функціональність програми визначається процедурами, які виконуються при виникненні певних подій, наприклад, тих , які відбуваються при діях користувача з елементами управління форми.
Користувацький інтерфейс програми складається з компонент. Компоненти є структурними одиницями і поділяються на візуальні (видимі) та невізуальні (системні). Дані поняття відносяться лише до етапу виконання, на етапі проектування видно усі компоненти. До візуальних компонент відносяться, наприклад, кнопки, списки або перемикачі, а також сама форма. За допомогою візуальних компонент користувач може керувати програмою, їх також називають елементами керування. Саме візуальні компоненти утворюють користувацький інтерфейс. До невізуальних компонент відноситься, наприклад, таймер.
При створенні інтерфейсу програми для кожної компоненти виконуються наступні операції: вибір компоненти і розміщення її у формі; зміна властивостей компоненти. Розробник виконує ці операції у вікні Форми, використовуючи Палітру компонент та Інспектор об’єктів. При цьому дії розробника більше нагадують роботу у графічному редакторі. Тому роботу по створенню інтерфейсу називають не програмуванням, а конструюванням.
Після розміщення компоненти у формі система Delphi автоматично вносить зміни у файл модуля і файл опису форми.
Зовнішній вигляд компоненти визначаються її властивостями, які є доступними у вікні Інспектора об’єктів, коли компонента виділена у формі. Властивості – це атрибути, які визначають спосіб відображення і функціювання компонент при виконанні програми. Спершу значення властивостей задаються по замовчуванню.Після розміщення компоненти у форму її властивості можна змінювати за допомогою Інспектора об’єктів, ввівши або вибравши потрібне значення.
На будь-якій стадії розробки інтерфейсної частини програму можна запустити на виконання. Після компіляції на екрані з’явиться форма програми, яка веде себе як звичайне вікно Windows. У формі, як правило, розміщені компоненти, які утворюють інтерфейс програми, і задача розробника – призначити для них відповідну реакцію на певні дії користувача, наприклад, натиснення кнопки або вибір перемикача. Такі реакції і визначають функціональність програми.
Середовище Delphi забезпечує автоматизований набір коду при виклику властивостей та методів об’єктів і записи стандартних конструкцій мови Object Pascal.
Так після вказання імені об’єкта і розділяючої крапки автоматично з’являється список доступних властивостей та методів даного об’єкта (при необхідності можна викликати такий список клавішами Ctrl+Space). Ім’я вибраної властивості або методу автоматично додається справа від крапки.
Перелік стандартних конструкцій мови викликається клавішами Ctrl+J. Після вибору автоматично додається її код.
Обробник подій створюється як самим розробником (що буде розглядатись пізніше), так і вибирається з існуючого списку. Для цього використовується Інспектор об’єктів.