- •Лекція №1.
- •Тема 1. Історичний і соціальний контекст програмування. Загальні принципи розробки програмних продуктів.
- •2. Застосування функцій Application Program Interface (api) для розробки програм для Windows.
- •3. Загальні відомості про об’єктно-орієнтоване програмування та автоматизацію проектування, програми програмування для Windows.
- •Лекція №2.
- •Тема 2. Введення у програмне середовище візуального програмування
- •Властивості компонентів.
- •Лекція №3.
- •2. Застосування модулів при програмуванні. Загальний вміст файлу модуля Unit1.Cpp .
- •Лекція №4.
- •Тема 4. Візуальне програмування компонентів при створенні програми.
- •Структура vcl.
- •Клас tObject.
- •Клас tPersistent.
- •Клас tComponent.
- •Клас tControl.
- •Клас tForm.
- •Клас tTimer.
- •Клас tStrings.
- •Клас tStringList.
- •Клас tFont.
- •Властивості.
- •Значення властивостей.
- •Типи властивостей.
- •Методи.
- •Лекція №5.
- •Тема 5. Подійно-орієнтована взаємодія між компонентами при створенні програми.
- •1. Взаємодія між компонентами та діями користувача при створенні програми та подальшого її використання.
- •2. Характеристика основних подій що виникають з об’єктами: OnActivate, OnClose, OnCreate, OnDestroy, OnHide, OnPaint, OnResize, OnShow, OnClick, OnDblClick, OnMouseDown, OnKeyDown, OnEnter та інші.
- •Лекція №6.
- •2. Змінні. Типизовані константи. Класифікація типів даних. Об’ява типів.
- •Модифікатори.
- •Користувацькі типи.
- •Розмір об’єктів.
- •3. Програмна схема опрацювання подій. Перетворення типів даних.
- •Зведення типів.
- •Основні визначення.
- •Області видимості змінних.
- •Правило одного визначення.
- •Лекція№ 7.
- •Тема 7. Об’єктно-орієнтований підхід до класів.
- •1. Об’єктно-орієнтований підхід. Об’єкт.
- •2. Взаємозв’язки об’єктів, класів. Поля та методи класів. Статичні, динамічні методи. Класи. Об’ява класу. Модель вказників. Методи. Події та вказники на методи.
- •3. Три групи методів. Інкапсуляція. Спадковість. Поліформізм. Конструктори і деструктори.
- •Розробка класів.
- •Поняття про конструктори і деструктори.
- •Лекція № 8.
- •Тема 8. Обробка виняткових ситуацій.
- •Механізм обробки виняткових ситуацій.
- •Обробка виняткових ситуацій.
- •2. Застосування виняткових ситуацій. Протоколювання виняткових ситуацій. Коди помилок в виняткових ситуаціях. Виняткова ситуація eAbort. Функція Assert.
- •Ієрархія виняткових ситуацій.
- •Тотальне перехоплення виняткових ситуацій.
- •Генерація виняткових ситуацій
- •Повторні виняткові ситуації.
- •Непередбачені виняткові ситуації.
- •Лекція № 9.
- •Тема 9. Візуальні компоненти бібліотеки vcl.
- •1. Бібліотека візуальних компонент vcl і її базові класи. Ієрархія базових класів. Класи: tObject, tPersistent, tComponent.
- •Візуальні та невізуальні компоненти.
- •2. Класи елементів керування: tControl, tWinControl, tCustomControl, tGraphicControl.
- •Клас форм tForm. Форми для головного вікна.
- •Форми для діалогових, інформаційних та інших вторинних вікон.
- •Модальні та немодальні вікна.
- •Основні властивості компонентів (форми).
- •Властивості, що доступні під час розробки та виконання програми.
- •Властивості, що доступні тільки під час виконання програми.
- •Основні методи компонентів (форми).
- •Основні події компонентів (форми).
- •Лекція № 10. Компоненти для введення та редагування тексту.
- •1. Клас tStrings. Властивості Text, Lines, Items.
- •2. Методи для роботи і текстом: AddString, AddObject, Assing, Equals, Delete, Move, IndexOf, Pos.
- •Введення та відображення цілих чисел.
- •Багаторядкові вікна редагування.
- •Компоненти вибору зі списків.
- •Компоненти – меню.
- •Панелі та компоненти зовнішнього оформлення.
- •Панелі загального призначення.
- •Багатосторінкові панелі.
- •Рядок стану.
- •Організація управління додатком. Список зображень.
- •3. Конструкції коду для обмеження типів символів. Конструкції коду для створення комбінацій клавіш.
- •Лекція № 11.
- •1. Принципи побудови баз даних.
- •Локальні і віддалені бази даних.
- •Створення форми для роботи з базами даних (вручну).
- •Створення форми для роботи з базами даних (майстром).
- •Створення бази даних.
- •Лекція № 12.
- •Тема 12. Створення баз даних за допомогою Database Desktop.
- •1. Створення нової таблиці. Задання полів. Задання властивостей таблиці. Створення псевдонімів баз даних у Database Desktop.
- •Створення нової таблиці.
- •2. Створення та редагування псевдонимів баз даних та каталогів.
- •Лекція № 13.
- •Тема 13. Компоненти, що використовуються у bde для зв’язку з базами даних.
- •Механізм доступ до бази даних. Псевдоніми dbe.
- •Компоненти доступу до баз даних.
- •1. Потоки та клас tThread. Властивості класу.
- •2. Методи класу: DoTerminate, Execute, Resume, Suspend, Synchronize, Terminate, WaitFor. Технологія com.
- •Запуск зовнішньої програми функцією execlp.
- •Лекція № 14
- •Тема 14. Народження дочірніх процесів.
- •Запуск зовнішньої програми функцією spawnlp.
- •Породження процесу функцією CreateProcess.
- •Лекція №15
- •Тема 15. Побудова багатовіконних програм.
- •1. Приклади розробки програми переглядання текстових файлів, графічних файлів, та відображення показів годинника.
- •2. Розробка графічного інтерфейсу користувача. Вимоги до інтерфейсу користувача додатків для Windows.
- •Багатовіконні додатки.
- •Стиль вікон додатку.
- •Колірне рішення додатку.
- •Шрифти текстів.
- •Лекція № 16.
- •Тема 16. Кросплатформне програмування для Linux.
- •1. Проект clx. Об’єктна концепція кросплатформного програмування. Бібліотека компонент clx. Подібність та різність візуальних компонент clx і vcl.
- •На рівні мови програмування.
- •На рівні прикладних програм.
- •Компонента модель .Net Framework. Типи компонентів.
- •Динамічна бібліотека dll як приклад компонента.
3. Загальні відомості про об’єктно-орієнтоване програмування та автоматизацію проектування, програми програмування для Windows.
Черговим етапом розвитку прикладного програмування стала поява об'єктно-орієнтованих мов, таких як С++, Visual Basic, Delphi та інших, які зробили можливою розробку програм, що займають величезний об'єм оперативної пам'яті і складаються з сотень тисяч і більше рядків програмного коду. Сьогодні нараховується значна кількість мов програмування. Деякі з них мають декілька версій-діалектів.
Ідея об'єктно-орієнтованого програмування вперше була висунута в мові Small talk. У об'єктно-орієнтоване програмування введено поняття об'єкту і реалізовані механізми обчислень, що дозволяють:
- описувати структуру об'єкту;
- описувати дії з об'єктами; .
- використовувати спеціальні правила спадкоємства об'єктів;
- встановити різний ступінь захисту компонентів об'єктів і визначити різні права доступу до них.
Основні характеристики об'єктно-орієнтованих мов програмування - інкапсуляція, поліморфізм і спадковість, які більш детально будуть розглянуті пізніше.
Під інкапсуляцією мається на увазі можливість описати як єдине ціле дані і програмний код, що маніпулює ними. Можна уявити собі об'єкт як супердані, які містять і власне дані, і властиву ним функціональність.
Кажучи про поліморфізм, мають на увазі те, що різні об'єкти можуть описувати різні реалізації одного і того ж методу.
Спадковість означає створення нових об'єктів з використанням вже існуючих.
Об'єктно-орієнтований нащадок мови Pascal , реалізований фірмою Вorland, знайшов багато прихильників і є не тільки засобом для вивчення об'єктно-орієнтованого програмування, але і хорошим інструментом для створення прикладних програм. Об'єктно-орієнтоване середовище Delphi є надбудовою над об'єктно-орієнтованою мовою програмування Object Pascal. Програмування на Object Pascal є менш складним, ніж на С++ за рахунок меншого використання покажчиків на функції операційної системи. Хоча програми створювані на С++ працюють швидше, однак для прикладних програм це нівелюється при сучасній швидкодії комп'ютерів.
Для розв'язання задач, пов'язаних із сумісністю програмного забезпечення, корпорація Microsoft запропонувала у 2000 році концепцію Microsoft .NET. Microsoft .NET — це платформа, на якій інформація на базі Web може передаватись користувачам різних електронних пристроїв (від мобільних телефонів до персональних комп'ютерів) із застосуванням сумісного програмного забезпечення. Платформа .NET пропонує нову модель програмування, яка дає можливість програмам, створеним абсолютно різними мовами програмування, взаємодіяти одна з одною.
Платформа .NET пропонує могутні можливості по розробці і введенню в експлуатацію програмного забезпечення, включаючи незалежність від певної мови, а також від платформи операційного програмного забезпечення. Замість вивчення нової мови програмування програмісти можуть працювати з тим самим програмним проектом, але писати код на будь-якій .NET-мові (наприклад, Visual Basic .NET, Visual C++ .NET, Delphi for the Microsoft .Net Framework та інших), з якими вони більш знайомі. Поряд з проблемою мовної незалежності платформа .NET розширює програмну сумісність, дозволяючи .NET - додаткам постійно перебувати у "дружньому стані" та "розуміти" чисельні платформи, що значно полегшує виконання Web - сервісів в Internet.
Ключовим компонентом архітектури .NET є Web - сервіси (Web services), що являють собою додатки, якими можна користатися за допомогою Internet. Клієнти Internet і додатки можуть використовувати ці Web - сервіси як будівельні блоки, що багато разів використовуються. Результатом такого підходу може бути, наприклад, сумісність при передаванні інформації від користувачів, що використовують системи UNIX до користувачів, що працюють на базі операційної системи Microsoft Windows.
Платформа .NET включає ідею повторного використання програмного забезпеченню. Розробники мають можливість компонувати додатки різного призначення таким чином, що утворюються нові можливості для користувача. Наприклад, один додаток міг би оформляти платежі за платіжними дорученнями, сплату податків, позики і капіталовкладення, використовуючи Web - сервіси різних компаній. Користувач OnLine може придбати Web - сервіси для платежів по кредитних картках, ідентифікації користувачів, мережної безпеки й обліку баз даних для створення Web - сайту своєї фірми.
Основну роль у взаємодії додатків різного призначення відіграють XML і SOAP, що застосовуються для забезпечення обміну даними між Web - сервісами. XML — це стандарт опису даних, а SOAP — протокол, що визначає загальний формат комунікаційного зв'язку між Web -сервісами. XML і SOAP дають можливість створювати зв'язуючи елементи, які об'єднують різні Web - сервіси для створення додатків.
Універсальний доступ до даних (universal data access) — ще одна важлива концепція платформи .NET. Якщо існують дві копії якого-небудь файла (наприклад, на персональному комп'ютері і на комп'ютері компанії), більш стара версія повинна постійно обновлятися — це називається синхронізацією файлів. Якщо окремі версії файла відрізняються один від одного, вони є несинхронізованими; така ситуація може привести до серйозних помилок і до втрати інформації. При роботі на платформі .NET дані можуть зберігатися в одному центральному місці, а не на окремих системах. Будь-який пристрій, сполучений з Internet, зможе мати доступ до даних (звичайно, при строгому контролі), які потім відповідним чином форматуватимуться для використання або відображення на тому пристрої, який звертається до них.
Таким чином, один і той же документ можна буде проглядати і редагувати на самих різних пристроях, включаючи персональний комп'ютер, мобільний телефон та інші пристрої. Користувачам не доведеться синхронізувати інформацію, тому що вона повністю обновлятиметься в центральній області.
Система .NET Framework корпорації Microsoft є ключовим елементом платформи .NET для Delphi. Ця система обробляє і виконує додатки і Web - сервіси, містить бібліотеку класів (яка називається Framework class library FCL), підвищує безпеку і забезпечує багато інших можливостей програмування.
Опис технології .NET Framework міститься у специфікації Common Language Specification (CLS), яка включає інформацію про типи даних, об'єкти і таке інше. Специфікація CLS є узгодженою із стандартами European Computer Manufacturers Association, що значно спрощує створення Framework для інших платформ.
Common Language Runtime(CLR) — ще одна центральна частина системи Framework. В середовищі CLR виконуються програми на мовах для платформи .NET. Програми компілюються в машинно-залежні команди в два етапи. Спочатку програма компілюється в код на проміжній "нейтральній" мові — CIL (Common Intermediate Language), яка визначає команди для CLR.
Мова CIL робить додатки .NET незалежними від платформи і компілятора, а також дозволяє використовувати разом модулі, що написані на різних мовах високого рівня. Мова CIL - це мова низького рівня. Вона схожа на мову асемблера, однак відрізняється своєю незалежністю від типу процесора. Крім того, CIL вміщує елементи, які пов'язані з архітектурою .NET, тобто підтримують загальні принципи об'єктно-орієнтованого програмування такі як: системи типів, атрибутів та інші. До загальної системи типів входять такі категорії як: поле, метод, властивість, подія.
Коди, створені на CIL конвертуванням з інших мов програмування можуть бути сполучені в подальшому у середовищі програмування .NET.
Система .NET Framework забезпечує високий рівень сумісності мов (language interoperability). Можливість виконання програми (без модифікацій) на декількох платформах називається незалежністю від платформи (platform independence). Написаний одного разу код може використовуватися на іншому комп'ютері без модифікації.
Сумісність мов програмування має багато переваг. Розробники програмного забезпечення, що використовують різні мови можуть працювати спільно над одним проектом без необхідності вивчати іншу мову програмування — весь їх код буде компільований в код на MSIL і буде придатним для створення однієї програми. Крім того, .NET Framework може об'єднувати для роботи старі і нові компоненти. Це допоможе розробникам повторно використовувати код, на розробку якого вони витратили значний, час, і об'єднати його з новим .NET-кодом, який вони напишуть.
Ще однією перевагою .NET Framework є можливості CLR, які відносяться до управління виконанням програм. Середовище CLR відповідає за розподіл пам'яті, безпеку та інші функції. Працюючи з такими мовами, як, наприклад, C++, програміст повинен сам займатися розподілом пам'яті. Це може привести до виникнення проблем. Якщо програміст виконає запит на пам'ять і не буде її звільняти: програми можуть витратити всю наявну пам'ять, що перешкодить виконанню інших програм. Керуючи пам'яттю програми, .NET Framework вивільняє час програміста і дає можливість йому зосередити свою увагу безпосередньо на створенні програмної логіки.
Система .NET Framework надає також обширну бібліотеку класів. Ця бібліотека називається Framework Class Library (FCL). Вона може використовувати із будь-якою .NET мовою. Бібліотека FCL містить безліч компонентів, що позбавляють програмістів необхідності створювати нові. Завдяки службі звернення до базової платформи (Platform Invocation Service, P/Invoke) додатки .NET можуть звертатися до інтерфейсів програмування тієї платформи, над якою реалізовано загальне середовище виконання .NET: платформа Win32, платформа Win64 і навіть Linux.
Основним аспектом концепції .NET є її незалежність від якоїсь певної мови або системної платформи. Звичайний додаток запускається системою в межах спеціально виділеного для додатка адресного простору. CLR надає можливість виконання безлічі керованих додатків в одному процесі. Кожний керований додаток зв'язується з власним доменом додатку (скорочено AppDomain). У додатку крім основного домена може бути створено декілька додаткових доменів.
Домени можуть мати наступні властивості:
- домени ізольовані один від одного. Об'єкти, створені в межах одного домена є недоступними з іншого домену;
- CLR здатна вивантажувати домени разом зі всіма складками, пов'язаними з цими доменами;
- можлива додаткова конфігурація і захист доменів;
- для обміну даними між доменами реалізований спеціальний механізм безпечного доступу (маршалинг);
- у .NET Framework розроблена власна компонентна модель, елементами якої є .NET-складання (.NET-assembly), а для прямої і зворотної сумісності з моделлю СОМ/СОМ+ в CLR вбудовані механізми (COM Interop), що забезпечують доступ до СОМ-об'єктів за правилами .NET і до .NET-складань за правилами СОМ.
Можливості, створені корпорацією Microsoft в .NET-платформі, створюють нову парадигму розвитку програмного забезпечення, яка збільшуватиме продуктивність програміста і зменшуватиме час, який витрачається на розробку програмного забезпечення. Основним аспектом концепції .NET є її незалежність від певної мови або системної платформи.
Підводячи риску під оглядом мов програмування необхідно підкреслити, що сьогодні вміння програмувати не зв'язано безпосередньо з конкретною мовою програмування. Сучасний програміст володіючи теоретичними знаннями синтаксичних конструкцій будь-якої мови програмування, вмінням оптимально відобразити структуру програмного алгоритму може створити прикладну програму, що складається з модулів які написані на різних мовах програмування. Кожен з таких модулів призначений для найбільш ефективної реалізації заданого функціонального наповнення у відповідній прикладній області.
