Яка мова використовується в Delphi. Про програмування та про Delphi

Сайт:

Delphi(Делфі, вимовляється /ˈdɛlˌfi:/) - Імперативна, структурована, об'єктно-орієнтована мова програмування, діалект Object Pascal. Починаючи з середовища розробки Delphi 7.0, в офіційних документах Borland почала використовувати назву Delphi для позначення мови Object Pascal. Починаючи з 2007 року вже мова Delphi (похідна від Object Pascal) почала жити своїм самостійним життям і зазнавала різних змін, пов'язаних із сучасними тенденціями (наприклад, з розвитком платформи.NET) розвитку мов програмування: з'явилися class helpers, перевантаження операторів та інше.

Цільова платформа

Спочатку середовище розробки було призначено виключно для розробки додатків Microsoft Windows, потім був реалізований також для платформ Linux (як Kylix), проте після випуску в 2002 році Kylix 3 його розробка була припинена, і незабаром після цього було оголошено про підтримку Microsoft .NET .

Реалізація середовища розробки проектом Lazarus (Free Pascal, компіляція в режимі сумісності з Delphi) дозволяє використовувати його для створення програм на Delphi для таких платформ, як Linux, Mac OS X і Windows CE.

Також робилися спроби використання мови у проектах GNU (наприклад, Notepad GNU) та написання компілятора для GCC.

Історія мови

Object Pascal - результат розвитку мови Турбо Паскаль, який, у свою чергу, розвинувся з мови Паскаль. Паскаль був повністю процедурною мовою, Турбо Паскаль, починаючи з версії 5.5, додав до Паскаля об'єктно-орієнтовані властивості, а в Object Pascal - динамічну ідентифікацію типу даних з можливістю доступу до метаданих класів (тобто до опису класів та їх членів) у коді, що кодується. , також званому інтроспекцією - дана технологія отримала позначення RTTI . Так як всі класи успадковують функції базового класу TObject, то будь-який покажчик на об'єкт можна перетворити до нього, після чого скористатися методом ClassType та функцією TypeInfo, які забезпечать інтроспекцію.

Також характерною властивістю Object Pascal від С++ є те, що об'єкти за умовчанням розміщуються в динамічній пам'яті. Однак можна перевизначити віртуальні методи NewInstance та FreeInstance класу TObject. Таким чином, абсолютно будь-який клас може здійснити «бажання» «де хочу – там і лежатиму». Відповідно організується і «багатокупність».

Object Pascal (Delphi) є результатом функціонального розширення Turbo Pascal.

Delphi вплинув створення концепції мови для платформи .NET . Багато його елементів та концептуальні рішення увійшли до складу С#. Однією з причин називають перехід Андерса Хейлсберга, одного з провідних розробників Дельфі, з компанії Borland Ltd. у Microsoft Corp.

  • Версія 8 здатна генерувати байт-код виключно для платформи. Це перше середовище, орієнтоване розробку мультимовних додатків (лише платформи.NET);
  • Наступні версії (позначаються роками виходу, а не порядковими номерами, як це було раніше) можуть створювати програми Win32, так і байт-код для платформи.NET.

Однак у листопаді того ж року було ухвалено рішення відмовитися від продажу IDE бізнесу. Тим не менш, розробкою IDE продуктів тепер займатиметься нова компанія – CodeGear, яка буде фінансово повністю підконтрольна Borland.

Торішнього серпня 2006 року Borland випустив полегшену версію RAD Studio під назвою Turbo: Turbo Delphi (для Win32 и.NET), Turbo C#, Turbo C++.

У березні 2008 року було оголошено про припинення розвитку цієї лінійки продуктів.

У березні 2007 року CodeGear порадувала користувачів оновленою лінійкою продуктів Delphi 2007 for Win32 і виходом нового продукту Delphi 2007 for PHP.

У червні 2007 року CodeGear представила свої плани на майбутнє, тобто опублікувала так званий roadmap.

Embarcadero RAD Studio 2010

  • За замовчуванням повна підтримка Юнікоду у всіх частинах мови, VCL та RTL; заміна звернень до всіх функцій Windows API на юнікодні аналоги (тобто MessageBox викликає MessageBoxW, а не MessageBoxA).
  • Узагальнені типи, вони ж generics.
  • Нова директива компілятора $POINTERMATH.
  • Функція Exit тепер може приймати установки відповідно до типу функції.

Компілятори

  • Embarcadero Delphi (раніше зв. CodeGear Delphi та Borland Delphi) - напевно, найвідоміший компілятор, який є послідовником Borland Pascal та Turbo Pascal. Використовується Win16 (Delphi 1), Win32 (Delphi 2 та пізніше), Win64 (Delphi 16 (XE2) та пізніше), а також .NET 1.x, 2.0 (Delphi 8, Delphi 2005-Delphi 2007). Підтримка.NET згодом виділена в окремий продукт, відомий як Oxygene.
  • Free Pascal (FPC) - вільний компілятор Оbject Pascal, який підтримує різні діалекти Паскаля, включаючи Turbo Pascal, Delphi та власні діалекти. На даний момент, FPC може генерувати код для x86, x86-64, PowerPC, SPARC і процесорів ARM, а також для різних операційних систем, у тому числі для Microsoft Windows, Linux, FreeBSD, Mac OS. Існує кілька середовищ розробки програмного забезпечення для FPC (один із найвідоміших представників – Lazarus).
  • GNU Pascal (окремо розроблена версія з GCC). Не ставить за мету продовження серії діалектів Delphi, як складової Паскаля, проте містить режим сумісності Borland Pascal, і дуже повільно пристосовує компоненти мови Delphi. Не підходить для компіляції великих проектів, що містять код Delphi, але варто зазначити, що його підтримує більшість операційних систем та архітектур.
  • Oxygene (раніше відомий як Chrome) - компілятор Object Pascal, який інтегрований у Microsoft Visual Studio. Також доступний у вигляді компілятора з вільним командним рядком CLI. Використовує .NET та моно платформи. На даний момент продається під маркою Embarcadero Delphi Prism.
  • MIDletPascal - мова програмування з Delphi-подібним синтаксисом, і однойменний компілятор, який перетворює вихідний код на компактний та швидкий байт-код Java.
  • PocketStudio - заснована на Паскалі, IDE для Palm OS.
  • Virtual Pascal - Безкоштовний компілятор та текстова IDE для Win32, OS/2 та Лінукса. На той момент дуже швидкий і сумісний (частково підтримуються конструкції Delphi 5). Зовні дуже схожий на текстове середовище Borland Pascal 7, хоча відсутня сумісна графіка, наприклад. Проте розробка закінчилася у 2004 році, а вихідники відкриті не були. З тих пір FPC пішов набагато вперед і в цілому для програмування краще він. Тим не менш, VP залишається дуже непоганим варіантом швидкої заміни ще більш застарілих версій Borland Pascal для школи/інституту, враховуючи рідну роботу Win32 без проблем з російськими кодуваннями.

Синтаксис мови

Оператори

Список операторів через пропуск: := + - * / div mod not and or with xor shl shr ^ =<> >= <= < >@ in is as

Вирази

Вирази в Object Pascal (Delphi) бувають арифметичними, логічними та рядковими.

Основні логічні вирази:
Логічні висловлювання переважно використовуються в умовних операторах. До логічних виразів належать такі операції як:

  • not - «НЕ», заперечення логічного виразу (NOT<логическое_выражение>)
  • and - «І», множення (перетин) логічних виразів (<логическое_выражение1>AND<логическое_выражение2>)
  • or - «АБО», об'єднання логічних виразів (<логическое_выражение1>OR<логическое_выражение2>)
  • xor - «Виключає АБО», заперечення АБО, все що не потрапляє під АБО (<логическое_выражение1>XOR<логическое_выражение2>)

Типи даних

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

Об'єкти

  • Продукція Embarcadero: Embarcadero Delphi, Embarcadero C++ Builder, Borland JBuilder 1 та 2 версії.
  • Адміністрація та розробка баз даних: MySQL Tools, IBExpert.
  • Інженерне програмне забезпечення: Altium Designer.
  • Файлові менеджери: Total Commander, Frigate.
  • Переглядачі графіки: FastStone Image Viewer, FuturixImager, drComRead.
  • Відео- та аудіопрогравачі: Light Alloy, The KMPlayer, AIMP, X-Amp.
  • Програми миттєвого обміну повідомленнями: QIP, R&Q, графічний інтерфейс Skype, The Bat! , PopTray , FeedDemon .
  • Створення музики: FL Studio, Guitar Pro (до версії 6.0).
  • Розробка програмного забезпечення: Dev-C++, DUnit, Game Maker, Inno Setup, PyScripter.
  • Веб-розробка: Macromedia HomeSite.
  • Текстові редактори: BirEdit, Notepad GNU, Bred.
  • Бухоблік та оподаткування: «ПАРУС», AVARDA (до версії 6.x включно).
  • Програми для створення анімацій: Pivot Stickfigure Animator.
  • Програми для стиснення даних: ALZip, PowerArchiver, PeaZip.
  • Комп'ютерні ігри: Age of wonders, "Космічні рейнджери", Venom. Codename: Outbreak, Space Empires V, «Правда про дев'яту роту».
  • Графічні редактори: Real Paint.

Примітки

Література

  • Ніл Дж. Рубенкінг.Мова програмування Delphi для "чайників". Вступ до Borland Delphi 2006 = Delphi for Dummies. – М.: Діалектика, 2007. – 336 с. - ISBN 0-7645-0179-8
  • Хав'єр Пашеку.Програмування у Borland Delphi 2006 для професіоналів = Delphi for .NET Developer's Guide. – М.: Вільямс, 2006. – 944 с. - ISBN 0-672-32443-X
  • А. Н. Вальвачов, К. А. Сурков, Д. А. Сурков, Ю. М. Чотири.Програмування мовою Delphi. Навчальний посібник . – 2005.

Посилання

  • Сторінка середовища програмування на сайті Embarcadero Technologies

Отже, в цій статті йтиметься про те, як визначити розрядність операційної системи Windows при програмуванні мовою Delphi. Це потрібно для того, щоб наприклад вибрати ту чи іншу версію драйвера - x86 (32-розрядна) або x64 (64-розрядна).

І так, приступимо.

Створюємо новий проект, кидаємо на форму компонент Label (текстовий напис).

Потім переходимо в редактор вихідного коду і розділ з змінними var додаємо рядкову змінну razr (тип даних string, тобто рядок).

var Form1: TForm1;

razr: string;

Після цього двічі натискаємо на форму, копіюємо та вставляємо в неї наступний код (у процедурі створення головної форми TForm1.FormCreate), між фразами begin та end; (тобто початком та кінцем процедури).

(за допомогою функції Get Enviroment Variable зчитуємо знання змінної ProgramFiles(X86)

якщо система 32 розрядна, то вона матиме порожнє значення

якщо 64 розрядна, вона матиме знання C:Program Files(x86)

тобто папка, в яку встановлюються 32 розрядні версії програм)

razr:= GetEnvironmentVariable("ProgramFiles(x86)");

label1.Caption: = razr;

if (razr = "") then

begin

label1.Font.Color:=clRed; (Змінює колір напису, ви можете вибрати будь-який на ваш смак, наприклад, clGreen - зелений)

label1.Caption:= "У вас x86"; (замість імені labl1 ви можете написати будь-яке інше, наприклад metka)

else

begin

label1.Font.Color:=clBlue; (Змінює колір напису, ви можете вибрати будь-який на ваш смак, наприклад, clGreen - зелений)

label1.Caption:= "У вас x64";

end;

Як працює програма?

За допомогою функції Get Enviroment Variable відбувається зчитування значення змінної оточення у Windows ProgramFiles(X86).

Якщо система 32 розрядна, вона матиме порожнє значення.

Якщо 64 розрядна, вона матиме знання C:Program Files(x86) тобто це папка, у якій встановлюються 32 розрядні версії програм.

Власне, на цьому все.

Ось що вийшло у мене.

Нижче ви можете завантажити архів з вихідним кодом програми, щоб спробувати самостійно розібратися в її роботі.


Коментарі ()

wdfm 90

На Windows 7 x64 програма працює відмінно, можна скористатися

Edward 300

Всі хто буде розводити офф топік + нецензурну лайку, я даватиму бан на 1 день! Це не стосується адміністраторів.
.php?board=18.0

Форум не просто так я робив!

Edward 300

Вступ

Ці вказівки складені з метою надання допомоги студентам для отримання ними практичних навичок за технологією візуального проектування власних програм під Windows у середовищі Delphi з використанням методології об'єктно-орієнтованого програмування. Лабораторні роботи охоплюють основні етапи розробки програм під Windows.

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

Основні поняття та визначення Delphi

delphi програмний масив візуальний

Екран після запуску Delphi містить чотири вікна: головне, форми, інспектора об'єктів та редактора коду, яке майже повністю закрите вікном форми.

У головному вікні знаходиться меню команд Delphi, панель інструментів та палітра компонентів.

Вікно форми, його заголовок FORM1 являє собою заготівлю, макет одного з об'єктів програми, що розробляється.

Вікно інспектора об'єктів, його заголовок Object Inspector дозволяє бачити та змінювати властивості об'єктів проекту. Після запуску Delphi у цьому вікні відображаються властивості форми FORM1.

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

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

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

Подія - це те, що відбувається під час роботи створеної Вами програми. У Delphi кожна подія має ім'я, наприклад, клацання кнопкою миші це подія OnClick, подвійне клацання - подія OnDblClick .

Проект - це набір файлів (програмних одиниць - модулів), використовуючи які компілятор створює файл програми, що виконується. Один із файлів проекту, який називається файлом проекту та має розширення dpr, містить загальний опис проекту. Файл проекту є основним модулем програми, який формується Delphi. Крім головного модуля, проект включає один або більше модулів (Unit) . Файли модулів проекту (Unit) містять тексти процедур, функцій, опис типів, а також всю інформацію для створення програми, що виконується, і мають розширення pas. Процедура - ця група операторів у мові програмування, що дозволяє виконати конкретні дії (вирішити завдання). Так чи інакше весь складений ініціалізації Вами виконуваний код обов'язково поміщається в якусь процедуру.

Модуль (Unit) складається з трьох розділів: інтерфейсу (починається зі слова interface), реалізації (починається зі слова implementetion) та. Нижче наводиться структура модуля.

unit Ім'яМодуля;

( Тут знаходяться опис процедур та функцій цього модуля, які можуть використовуватись іншими модулями)

(Тут знаходяться оголошення глобальних констант модуля, які можуть використовуватись процедурами та функціями модуля)

(Тут знаходяться оголошення глобальних типів модуля, які можуть використовуватись процедурами та функціями модуля)

(Тут знаходяться оголошення глобальних змінних модуля, які можуть використовуватись процедурами та функціями модуля)

(Тут є опис процедур та функцій модуля)

(Тут інструкції розділу ініціалізації змінних модуля)

Таким чином, розділ інтерфейсу повідомляє компілятор, яка частина модуля є доступною для інших модулів програми. Розділ реалізації починається директивою ($R*.DFM), що вказує компілятору, що в процесі генерації файлу, що виконується, треба використовувати опис форми. Опис форми знаходиться у файлі з розширенням dfm, ім'я якого збігається з ім'ям модуля. За директивою ($R*.DFM) слідують процедури обробки подій для форми та її компонентів. Сюди ж програміст може помістити розроблені процедури та функції. Якщо розділ ініціалізації не містить інструкцій, слово begin не вказується.

Delphi є мовою програмуваннята середовищем розробки програмного забезпечення. Він розроблений Borland (раніше відомий як Inprise). Мова програмування Делфі, раніше відома як Object Pascal(Pascal з об'єктно-орієнтованими розширеннями), спочатку орієнтований тільки на Microsoft Windows, але в даний час дозволяє будувати власні програми для Linux і Microsoft. NET Framework, та інших (див. нижче). Програмування для початківців.
Найбільш популярне використання - розробка настільних додатків та баз даних підприємства, а як інструмент мова програмування Делф іможе використовуватися і для більшості типів проектів, що розвиваються. Це була одна з перших мов, яка стала відомою як інструмент RAD (швидка розробка додатків), коли вийшов у 1995 році. Delphi 2, що вийшов через рік, підтримував 32-розрядне середовище Windows, і а лише через кілька років вийшли C, C++ Builder. У 2001 році стала доступна версія під ОС Linux, відома як Kylix (класична грецька урна). Щороку виходило за однією новою версією, в 2002 році продукт став відомий як Delphi 7 Studio, мова стала офіційно називатися мовою програмування Delphi, а не Object Pascal, а також була додана підтримка Linux (через Kylix) та. NET (через Попередній компілятор). Повна підтримка. NET запланована на майбутній Delphi 8. Програмування для чайників.
Основні компоненти Delphi та Kylix: мова Delphi (раніше офіційно відома як мови Object Pascal), ВК/CLX (Visual Component Library), сильні зв'язки з базами даних, у поєднанні з потужною IDE (Integrated Development Environment) та додатковими інструментами підтримки.
Чудові особливості мови Delphi включають:

  • Прозора обробка об'єктів через посилання чи покажчики
  • Властивості як частина мови, разом з функціями Get та Set, які є прозорою інкапсуляцією доступу до членів полів
  • Властивості індексу та властивості за промовчанням, які забезпечують доступ до колекції зручним та прозорим способом.
  • Делегати або по-іншому методи покажчиків безпечного типу, які використовуються для приведення в дію події, викликаних компонентами
  • Делегування реалізації інтерфейсу у полі чи властивість класу
  • Простота впровадження обробники Windows повідомлення, відзнач метод класу з числом / ім'я вікна повідомлень для обробки
  • Більшість функцій, перерахованих вище, були введені в Delphi першою та адаптовані іншими мовами пізніше.

Головним архітектором Delphi, і його попередника Turbo Pascal, був Андерс Хейлсбергом, доки він не перейшов у Microsoft у 1996 році, присвятив свою справу основам програмування.
Продукт Delphi поширюється в різних комплектах, кожен з яких пропонує більшу функціональність у порівнянні з іншими:

  • Персональний
  • Професійний
  • Підприємство
  • Архітектор

Значні причини для використання Delphi:

  • Дуже інформативні та корисні спільноті новини
  • Може компілювати в один виконуваний, спрощуючи розподіл та скорочення питань з різними DLL
  • VCL та сторонні компоненти, як правило, доступні з повним вихідним кодом
  • Потужний та швидкий компілятор, що оптимізує
  • З одного вихідного коду виходять чудові машинні коди для різних ОС
  • Підтримка новітніх технологій та стандартів

Клони та альтернативи

Не здатний задовольнити всі потреби програмістів, є цілий набір додаткових засобів, які покликані розширити діапазон розв'язуваних завдань за допомогою Delphi або це можна зробити за допомогою вставки коду іншими мовами, де Delphi і Kylix безсилі.
Ці замінники Делфі можуть бути використані в разі неможливості оплатити середовище розробки, потреби у безкоштовних середовищах розробки (наприклад, для операційних систем та програмного забезпечення, що вільно розповсюджується, або в освітніх цілях). У більшості випадків ці альтернативи використовуються для навчання, а також для написання серверних компонентів, для операційних систем, які не є широко поширеними (так було до тих пір, поки не з'явився Kylix для ОС Linux, яка використовується в основному як ОС для серверів ). .
Перерахуємо деякі:

  • Free Pascal – заміна, яка випускається у вигляді компілятора, що запускається з командного рядка. Ця розробка заснована на сумісності з основним набором функцій Turbo Pascal, так і Delphi діалектів. Особливості Delphi версій вище 4 реалізовані та працюють. Працює на більшості x86 операційних систем, включаючи Win32, Dos, Linux, BSD та Novell Netware. Підтримка інших операційних систем на m68k та PowerPC, статус яких досі змінюється дуже швидко, не здійснюється. Робота з перенесення на платформу SPARC розпочалася.
  • GNU Pascal (що окремо розповсюджується частина GNU Compiler Collection) хоча формально не націлена на діалекти Borland Паскаль, але містить сумісність з Borland Pascal, і поступово вбирає особливості мови Delphi, хоча і не підходить для перекомпіляції великих обсягів коду Delphi. Це найбільш плідний компілятор з точки зору операційних систем і процесорів, хоча, і заслуговує на згадку тільки як останній варіант.
  • Існує інструмент під назвою Pocket студія, спрямована на компіляцію урізаного коду Delphi для КПК.
  • Virtual Pascal - компілятор, x86 32-розрядний Turbo Pascal і Delphi, сумісний в основному з OS/2 і Windows, хоча розроблений DOS Extender та експериментальний Linux крос-компілятор. Компілятор застряг на рівні біля Delphi версії 2, і сайт не зазнав істотних змін протягом двох років, але в якості альтернативи це ще один з кращих, з чудовим IDE та відладчиком, хоча Free Pascal теж не спить.
  • BloodShed розповсюджує дуже хороший графічний редактор Win32 (хоч і не RAD) як інтерфейс для GNU Pascal та Free Pascal.
  • Lazarus зусилля спрямовані на створення середовища розробки для Free Pascal. Хоча порт GTK стає корисним для написання невеликих додатків, таких як засоби конфігурування, то win32 порт все ще потребує значного доопрацювання.
  • InnerFuse є перекладачем Delphi для вбудовування у додатки. Ходять чутки, що працюватимуть з декількома версіями Делфі.
  • WDOSX є Win32 API емуляції DOS Extender, який може бути використаний для отримання консольних додатків написаних на Delphi, що працюють на звичайній DOS.

Як стати професіоналом із розробки сайтів та почати заробляти? Недорогі відео курси із ознайомчим введенням.

Почнемо наше ознайомлення із програмуванням у середовищі 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. Delphi 1.0, що вийшов незадовго до появи Windows 95, був першим інструментом розробки додатків 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). Додано підтримку для хмарних обчислень.

Сподобалася стаття? Поділіться їй
Вгору