- •Лекція №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.
- •Компоненти доступу до баз даних.
- •Лекція № 14
- •Тема 14. Народження дочірніх процесів.
- •1. Потоки та клас tThread. Властивості класу.
- •2. Методи класу: DoTerminate, Execute, Resume, Suspend, Synchronize, Terminate, WaitFor. Технологія com.
- •Запуск зовнішньої програми функцією execlp.
- •Запуск зовнішньої програми функцією spawnlp.
- •Породження процесу функцією CreateProcess.
- •Лекція №15
- •Тема 15. Побудова багатовіконних програм.
- •1. Приклади розробки програми переглядання текстових файлів, графічних файлів, та відображення показів годинника.
- •2. Розробка графічного інтерфейсу користувача. Вимоги до інтерфейсу користувача додатків для Windows.
- •Багатовіконні додатки.
- •Стиль вікон додатку.
- •Колірне рішення додатку.
- •Шрифти текстів.
- •Лекція № 16.
- •Тема 16. Кросплатформне програмування для Linux.
- •1. Проект clx. Об’єктна концепція кросплатформного програмування. Бібліотека компонент clx. Подібність та різність візуальних компонент clx і vcl.
- •На рівні мови програмування.
- •На рівні прикладних програм.
- •Компонента модель .Net Framework. Типи компонентів.
- •Динамічна бібліотека dll як приклад компонента.
Лекція № 9.
Тема 9. Візуальні компоненти бібліотеки vcl.
План.
Бібліотека візуальних компонент VCL і її базові класи. Ієрархія базових класів. Класи: TObject, TPersistent, TComponent.
Класи елементів керування: TControl, TWinControl, TCustomControl, TGraphicControl.
1. Бібліотека візуальних компонент vcl і її базові класи. Ієрархія базових класів. Класи: tObject, tPersistent, tComponent.
Ієрархія класів VCL, що відносяться до компонентів, достатньо складна. На щастя, вам не потрібно знати кожен клас VCL для того, щоб почати програмувати у С++ Builder. Проте, для роботи з VCL потрібно дещо більше дізнатися про її класи. Тому ми говоритимемо про деякі з них, які ви будете використовувати найчастіше.
Як вам вже відомо, саме компоненти забезпечують C++Builder.Сьогодні ви познайомитеся з компонентами, що використовуються найчастіше, та дізнаєтеся про класи VCL, що представляють ці компоненти.
Візуальні та невізуальні компоненти.
Одні компоненти є візуальними, інші – не візуальними. Візуальний компонент – це такий компонент, який є видимим користувачеві під час виконання програми. До візуальних компонентів відносяться елементи редагування, кнопки, списки, позначки.
Більшість компонентів, з якими ви будете використовувати в додатках, є візуальними. Під час розробки програми візуальні компоненти виглядають так само, як вони будуть виглядати під час її виконання. Невізуальний компонент – це компонент, який не може бути видимим користувачеві під час виконання програми. Невізуальні компоненти працюють „за кулісами” й виконують специфічні задачі. Прикладами таких компонентів є: системні таймери, компоненти для роботи з базами даних та списки зображень. Стандартні діалогові вікна, такі як File Open, File Save, Font та інші, також є не візуальними компонентами. Під час розробки програми в формі C++Builder показує їх у вигляді значка. Цей значок використовується лише для зміни властивостей компонента на етапі розробки й не виводиться на екран під час виконання програми.
2. Класи елементів керування: tControl, tWinControl, tCustomControl, tGraphicControl.
Клас форм tForm. Форми для головного вікна.
Основою для будь-якого додатку С++ Builder слугують форми (екземпляри класу TForm). Кожен додаток має щонайменше одну форму, яка слугує головним вікном додатку. Форма головного вікна може бути просто порожнім вікном, може містити елементи управління чи растрове зображення. У типовій Windows-програмі головне вікно зазвичай має рядок меню. Вікно може також містити, наприклад, панель інструментів чи рядок стану. Кожен додаток є унікальним й пред’являє програмісту свої вимоги.
Форми для діалогових, інформаційних та інших вторинних вікон.
У додатках доволі часто доводиться відображати різноманітні прості діалогові вікна, щоб дати користувачу які-небудь вказівки чи задати нескладне питання, на яке можлива одна з відповідей: так, ні, відмінити, перервати. Вторинне вікно (secondary window) – це форма, що відображається (викликається) з головного вікна. Діалогові вікна зазвичай мають деякі характерні риси, що відрізняють їх від звичайних вікон:
фіксований розмір;
наявність кнопок ОК (часто ця кнопка єдина), Cancel та Help;
наявність укладок;
використання клавіші Tab для переміщення між елементами управління діалогового вікна
В С++ Builder вторинні вікна є просто різновидом форми. Ви проектуєте їх так само, як і форму для головного вікна чи будь-яку іншу форму.
Так, наприклад, для того, щоб зафіксувати розмір вікна у С++ Builder, ви можете змінити значення властивості BorderStyle на bsDialog.
При цьому ваше вікно буде містити у рядку заголовку лише одну кнопку закриття, що традиційно прийнято для діалогових вікон. Проте іноді зручно користуватися готовими діалоговими вікнами та методами, що їх викликають. Найпростішим методом є метод ShowMessage(), що відображає вікно повідомлення з кнопкою OK.
Текст повідомлення задається параметром Msg. Заголовок такого вікна співпадає з ім’ям файлу додатку. Функція MessageDlg() відображає вікно, в якому користувачу ставиться певне питання та аналізується отримана відповідь. Метод відображає діалогове вікно та очікує відповіді користувача. Текст повідомлення задається параметром Msg. Вид вікна задається параметром DlgType:
mtWarning – вікно зауважень, що містить жовтий знак оклику.
mtError – вікно помилок, що містить червоний стоп-сигнал.
mtInformation – інформаційне вікно, що містить блакитний символ „і”.
mtConfirmation – вікно підтвердження, що містить зелений знак питання.
mtCustom – рекомендоване вікно, без малюнку.
Параметр Buttons визначає, які кнопки будуть міститися у вікні:
mbYes – кнопка з надписом „Yes”
mbNo – кнопка з надписом „No”
mbOk – кнопка з надписом „OK”
mbCancel – кнопка з надписом „Cancel”
mbHelp – кнопка з надписом „Help”
mbAbort – кнопка з надписом „Abort”
mbRetry – кнопка з надписом „Retry”
mbIgnore – кнопка з надписом „Ignore”
mbAll – кнопка з надписом „All”
Можна також використати готові набори кнопок:
mbYesNoCancel – включає у вікно кнопки Yes, No, Cancel
mbOkCancel – включає у вікно кнопки Ok та Cancel
mbAbortRetryIgnore – включає у вікно кнопки Abort, Retry та Ignore
Необхідні кнопки заносяться в Buttons операцією <<, оскільки параметр є множиною.
Параметр HelpCtx визначає екран контекстної довідки. Якщо довідка не планується, то HelpCtx=0.
Наприклад, діалог при виході з додатку:
|
if (MessageDlg("Дійсно бажаєте закінчити роботу програми?", mtConfirmation, TMsgDlgButtons()<< mbYes<< mbNo, 0) == mrYes) { ShowMessage("Роботу програми закінчено!"); Close(); } |
Крім цього, бібліотека VCL містить класи діалогових вікон, що інкапсулюють стандартні діалогові вікна Windows для спрощення їхнього використання. Прикладами можуть бути класи:
TOpenDialog – призначений для створення вікна діалогу „Відкрити файл”,
TSaveDialog – призначений для створення вікна діалогу „Зберегти файл”,
TFontDialog – призначений для створення вікна діалогу „Шрифти”,
TColorDialog – призначений для створення вікна діалогу „Колір” тощо.
Їх можна знайти на укладці Dialogs палітри компонентів. Вони є невізуальними компонентами С++ Builder. Проте, ці стандартні діалогові вікна не є формами С++ Builder.
Для створення та відображення всіх стандартних діалогових вікон Windows використовується метод Execute(). Ця функція відкриває діалогове вікно та, якщо користувач натиснув кнопку Ок, двічі клацнув на імені файлу чи натиснув клавішу Enter, то функція повертає значення true. Якщо користувач клацнув на кнопці Cancel, натиснув клавішу Esc чи закрив діалогове вікно системною кнопкою закриття вікна, то Execute() повертає значення false.
|
Наприклад, стандартне звернення до діалогу має вигляд : if (OpenDialog -> Execute()) { … }; |
