Категории

Cуществуют следующие способы оплаты за занятия:

  • Абонемент на 8 посещений (срок действия 1 месяц) - 300 грн.;
  • Абонемент на 4 посещения (срок действия 1 месяц) - 200 грн.;
  • Абонемент на 12 посещений(срок действия 1 месяц) - 400 грн.;
  • Разовое посещение - 60 грн.
(ДЛИТЕЛЬНОСТЬ ЗАНЯТИЙ ПО 1,5 ЧАСА)

Вивчаємо Delphi - Про програмування та про Дельфі

  1. Що таке програмування
  2. Що таке Delphi
  3. Delphi і інші
  4. Процедурне програмування і алгоритми
  5. Про об'єктно-орієнтованому програмуванні
  6. Візуальне програмування і Delphi
  7. Версії Delphi і їх відмінності

Наше деловое партнерство www.banwar.org

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

Що таке програмування

Отже, перш за все, з'ясуємо для себе, що ж розуміють під терміном програмування? Зараз багато хто називає себе програмістами, не знаючи навіть про те, що це таке: на перевірку виявляється, що людина, яка змінила пару рядків коду в HTML-документі вже готовий вважати себе програмістом. Але насправді, працюючи з HTML (саме з самим HTML), стати програмістом не можна, оскільки HTML, що випливає з назви (Hypertext Markup Language - мова розмітки гіпертексту), мовою програмування не є.

В результаті ми маємо перша умова: для вивчення програмування потрібен якийсь мова програмування. У нашому випадку це буде мова Object Pascal останніх версій (14.0 або 15.0).

Далі, припустимо хтось, що називає себе програмістом, не тільки правил пару рядків коду HTML, але і бачив Delphi, і навіть намалював в ньому форму з 2-3 кнопками і текстовим полем. Чи це програміст? Швидше за все, теж немає. Справа в тому, що під візуальної оболонкою, насправді, ховається складніший механізм, що забезпечує взаємодії елементів управління (тих же кнопок) з користувачем і операційною системою - з одного боку, і дозволяє виконувати практично будь-які обчислювальні дії - з іншого. При цьому слід вміти робити головне - складати алгоритми поведінки програми - будь то її реакція на натискання тієї чи іншої кнопки, або створення функції для вирішення складного математичного рівняння.

Так ось, програмування в, своєму сучасному понятті, включає в себе знання принципів роботи операційної системи, взаємодії її компонентів і внутрішнього устрою. Ну і при цьому зберігається класичне визначення програмування, а саме - вміння складати алгоритми, математичні і поведінки програми. Все це реалізується в контексті будь-якої мови програмування, наприклад, того ж Object Pascal з Delphi.

Що таке Delphi

Тепер ми знаємо, що програмування - є складання алгоритмів плюс використання мови програмування. Але якщо досліджуваним нами мовою є Object Pascal, то що таке Delphi? Відповідь така: Delphi - це RAD, або Rapid Application Development - середовище швидкої розробки додатків. Інакше кажучи, Delphi включає в себе не тільки всі засоби для роботи з мовою Object Pascal (тим більше, що починаючи з версії, 2005 у Delphi є підтримка інших мов програмування, зокрема, C #), а й ряд додаткових коштів, покликаних максимально прискорити і спростити створення програм. До таких засобів належать, перш за все, візуальний редактор форм, за допомогою якого за лічені хвилини і без зайвих зусиль можна створити повноцінно виглядають програму, а так само інші складові частини візуальної складової розробки програм.

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

Укупі з розвиненими засобами для написання і налагодження коду - спеціалізованим текстовим редактором, компілятором з оптимізацією і отладчиком, Delphi являє собою засіб швидкої розробки додатків. При цьому основою Delphi для кінцевого користувача є IDE - Integrated Development Environment (інтегроване середовище розробки), яка об'єднує в собі редактор коду і засоби візуальної розробки, а також пов'язує це з компілятором, засобами розробки баз даних і іншими складовими частинами Delphi.

Delphi і інші

Зрозуміло, Delphi - не єдина середовище швидкої розробки додатків. Існують і інші RAD, настільки ж зручні для візуальної розробки програм, наприклад, Visual Basic. Але BASIC відомий як не самий потужний і зручний мову програмування, крім того, програми на ньому відрізняються порівняно невисокою швидкодією.

Разом з тим, є й не менш потужні, в порівнянні з Object Pascal, мови програмування, що мають свої RAD - перш за все, це мова C ++ разом з таким найбільш відомими засобами розробки, як Visual C ++ і C ++ Builder. Однак C ++ не в кращу сторону відрізняється від Object Pascal з точки зору простоти вивчення. Крім того, збірка і налагодження програм на C ++ відбувається порівняно повільно, хоча готові програми виконуються так само швидко, як і створені за допомогою Delphi.

ПРИМІТКА
Відзначимо, що в момент своєї появи в 1995 році, Delphi була дійсно унікальною середовищем, що об'єднує в собі візуальне програмування з компілятором з оптимізацією і засобами для роботи з базами даних.

В результаті ми отримуємо практично ідеальний продукт для швидкої розробки програм: з одного боку простота і зручність, які можна порівняти з Visual Basic, а з іншого - міць, швидкість і гнучкість, характерні для C ++.

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

Процедурне програмування і алгоритми

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

Давайте розглянемо найпростіший алгоритм - для гри "вгадай число". Логіка його роботи полягає в тому, що потрібно перевірити, чи є число більшим чи меншим, ніж загадане, і якщо це так, ти вивести відповідну підказку, а якщо воно не більше і не менше (тобто збігається) - то гра закінчується . Блок-схема такого алгоритму буде складатися з 2 розгалужень (рис. 1.1).


Мал. 1.1. Блок-схема простого алгоритму

Насамперед тут у користувача запитується число A, яке двічі порівнюється з попередньо заданим числом B. Спочатку перевіряється, чи не є число A більше, ніж B, і якщо так, то програма повідомляє, що стався "переліт", і повертається на точку введення числа. Якщо число не більше, то відбувається друге порівняння - на те, чи не є A менше B. Якщо це так, то виводиться повідомлення про те, що число менше ( "недоліт") і, знову-таки, відбувається повернення до початку. Але якщо число A не менш числа B, то, з огляду на той факт, що на даний момент вже відомо, що воно і не більше, отже, воно дорівнює числу B, і програма завершує свою роботу. При цьому вона може вивести привітання користувача з тим, що він вгадав число.

Даний алгоритм може бути частиною іншого алгоритму. Наприклад, тут не передбачена генерація самого числа, яке слід відгадати. Так само відсутня можливість повторної гри. Щоб виправити цю ситуацію, розглянемо блок-схему алгоритму, керуючого виконанням програми в цілому (рис. 1.2).


Мал. 1.2. Блок-схема управління програмою

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

Конкретна реалізація того чи іншого алгоритму залежить від застосовуваного мови програмування, а так само від уподобань творця програми, оскільки, як правило, одну і ту ж конструкцію можна вирішити, використовуючи кілька різних методів. Наприклад, для повернення до будь-якої точки, позначеної на блок-схемі, можна використовувати як цикли, так і оператори безумовного переходу. Ну а самі блоки можуть виноситися в окремі процедури і викликатися як підпрограм. Єдиною спільною рисою є умовний оператор, який відповідає за розвилку - практично у всіх мовах, і Pascal тут не виняток, він називається IF. Втім, з операторами Object Pascal ми ще встигнемо ознайомитися.

Про об'єктно-орієнтованому програмуванні

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

ПРИМІТКА
Під терміном "об'єкт" в програмуванні розуміють якийсь складний тип даних, до якого можуть бути прив'язані унікальні для даного типу властивості, а в разі ООП - також і методи.

Інкапсуляція є об'єднання даних і обробних їх підпрограм - методів - всередині одного об'єкта, званого в ООП "класом". Це означає, що в класі инкапсулируется все необхідне для роботи з тим чи іншим об'єктом.

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

У Object Pascal всі класи відбуваються від єдиного предка - класу TObject, який реалізує такі загальні для всіх класів дії над об'єктом, як створення і видалення.

ПОРАДА
В поставку коробкових версій Delphi включений плакат, на якому зображено дерево класів для всіх основних компонент Delphi. Тому якщо ви - щасливий володар ліцензійного продукту, то можете наочно вивчати пристрій цієї системи, розмістивши цей плакат на своєму робочому місці.

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

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

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

Візуальне програмування і Delphi

Отже, Delphi являє собою середовище, що працює з об'єктно-орієнтованим структурним мовою програмування Object Pascal. На додаток до цього, Delphi є ще й середовищем візуальної розробки. Інакше кажучи, вже в процесі створення програми видно, як вона буде виглядати під час виконання. Візуальне програмування в рази скорочує час, необхідний на створення призначеного для користувача інтерфейсу для додатків Windows. До появи візуальних засобів розробки, програмування під Windows було пов'язане з великими труднощами, оскільки було потрібно практично наосліп обчислювати розташування кожного елемента управління у вікні програми, що призводило до безлічі помилок (рис. 1.3).


Мал. 1.3. Класичний і візуальний підходи до створення інтерфейсу

Те, що Delphi є візуальним середовищем розробки, завдає свій відбиток і на мову програмування. Зокрема, в ньому передбачені спеціальні засоби для того, щоб певні властивості класів могли бути доступні вже на етапі розробки програми, а не тільки під час виконання. Але найважливішою частиною всього цього пишноти є бібліотека класів - VCL (Visual Component Library). Саме VCL приховує всі гострі кути нутрощів Windows, і дозволяє легко створювати додатки, не вступаючи в затяжну війну з обробкою системних повідомлень, зворотних викликів, дескрипторів і покажчиків.

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

Візуальні компоненти ми детально розглянемо в 3-й частині цієї книги.

Версії Delphi і їх відмінності

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

Delphi 1. Що вийшов незадовго до появи Windows 95, Delphi 1.0 був першим інструментом розробки додатків Windows (3.1), що об'єднав в собі оптимізуючий компілятор, візуальне середовище розробки і потужні засоби для роботи з базами даних. Для мови Pascal це стало справжнім перевтіленням - він став Object Pascal.

Delphi 2. Що вийшла через рік 2-я версія Delphi пропонувала все той же, але вже для 32-разряних версій Windows (95 / NT), знову-таки ставши першим засобом, що поєднує 32-бітний компілятор, засоби для роботи з БД і візуальне середовище розробки, підтримуючу OLE (а після виходу оновленої Delphi 2.01 - і ActiveX). Мова так само змінився, ставши орієнтованим на 32-розрядний застосування.

Delphi 3. Подальше вдосконалення Delphi в усіх напрямках призвело до виходу 3-й версії, що мала розширений набір інструментів для створення додатків завдяки підтримці COM і ActiveX. У цій версії також вперше був зроблений акцент на можливості створення додатків для Інтернету, а так же з'явився нетипізований тип даних - variant.

Delphi 4. Ще одна ключова віха розвитку. У цій версії було введено багато нового і корисного для прискорення розробки програмного забезпечення, включаючи нове середовище з динамічними підказками і т.д. Була вдосконалена модель роботи з компонентами (VCL), з'явилася можливість швидкого використання таких технологій, як MIDAS, DCOM і CORBA. У цій версії так само був вдосконалений мову Object Pascal: з'явилися нові риси, властиві сучасному ООП, були введені нові типи даних, включаючи 64-бітові.

Delphi 5. Змін в Delphi 4 було так багато, що, на жаль, не обійшлося без прикрих накладок і помилок. Результатом був випуск 3-х пакетів оновлень (наші пірати продавали їх під вивісками Delphi 4.1, 4.2 і 4.3). Але найповнішим і правильним пакетом оновлень слід вважати Delphi 5 - в цій версії було доведено до розуму все те, що було розпочато в Delphi 4.

Delphi 6. З виходом шостої версії Borland проголосила нову, крос-платформену епоху в Delphi, паралельно випустивши версію Delphi для ОС Linux (Kylix 1.0). Тепер при створенні програми можна було вибирати його тип - для Windows, або ж універсальне. Відповідно, до бібліотеки VCL додалася бібліотека CLX, сумісна як з Windows, так і з Linux. Крім того, в 6-й версії нарешті з'явилися "рідні", а не чужорідні ActiveX, компоненти для роботи з Інтернетом, причому відразу в обох варіантах - і для VCL і для CLX. Починаючи з цієї версії, сама мова програмування Object Pascal офіційно називається Delphi.

Delphi 7. Подальший розвиток Delphi 6, поліпшена бібліотека CLX і нова кореспондуються версія середовища розробки під ОС Linux - Kylix 3. Разом з тим, починаючи з Delphi 7, Borland перейнялася питанням сумісності з ще однією платформою - Microsoft .NET, для чого деякі зміни були внесені як в VCL, так і в мову (і, відповідно, в компілятор).

Delphi 8. Перша версія Delphi, орієнтована на роботу з платформою Microsoft.NET. У цій версії розробники ризикнули змінити інтерфейс середовища, зробивши його схожим на продукцію Microsoft - нового великого акціонера Borland. Підтримка, відповідно, була Kylix припинена.

Delphi 2005. Менш чем через рік после Вихід Delphi 8, з'явилася нова версія, в Якій спішно повернули можлівість працювати в класичному стилі IDE при розробці Додатків для Windows. Разом з тим, Delphi 2005, в разі розробки додатків спеціально для платформи NET, дозволяє працювати не тільки з мовою Delphi, але і з C #. При цьому в саму мову Delphi були введені такі нововведення, як оператор for ... in і вбудовані процедури і функції.

Delphi 2006. Остання версія Дельфі, випущена фірмою Borland. Так само була випущена полегшена версія - Turbo Delphi. Далі почалося подорож по іншим розробникам.

Delphi 2007. Версія, випущена CodeGear. Додана підтримка інтерфейсу Aero для Windows Vista.

Delphi 2009. Версія, випущена Embarcodero. Реалізована підтримка Unicode в VCL і RTL, замінені звернення до всіх функцій Windows API на аналоги в Unicode, додані узагальнені типи і анонімні методи.

Delphi 2010 року. Підтримка Windows 7, компоненти для роботи з дотиками і жестами, компоненти dbExpress тепер офіційно підтримує Firebird.

Delphi XE (Delphi 2011). Додана підтримка для хмарних обчислень.

Чи це програміст?
Але якщо досліджуваним нами мовою є Object Pascal, то що таке Delphi?
У чому ж суть відмінностей процедурного програмування від об'єктно-орієнтованого?