- •Лекція №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 як приклад компонента.
Лекція № 10. Компоненти для введення та редагування тексту.
План.
Клас TStrings. Властивості Text, Lines, Items.
Методи для роботи і текстом: AddString, AddObject, Assing, Equals, Delete, Move, IndexOf, Pos.
Конструкції коду для обмеження типів символів. Конструкції коду для створення комбінацій клавіш.
1. Клас tStrings. Властивості Text, Lines, Items.
Для відображення різноманітних надписів на формі використовуються компоненти Label, StaticText та Panel (хоча основне призначення в нього інше).
Компонент Label (Standard) – текстова позначка, що не змінюється користувачем. Основна властивість – Caption типу AnsiString. Для оформлення тексту з декількох фрагментів використовується операція конкатенації „+”:
|
Label1 –> Caption = ”Кількість студентів: ” + IntToStr(I); |
Єдиними доступними елементами оформлення надпису є колір фону Color та шрифт Font. Має властивість WordWrap – допустимість перенесення слів довгого надпису на новий рядок по досягненню правого краю компонента.
Розмір позначки Label визначається властивістю AutoSize: коли значення властивості дорівнює true, висота та ширина компонента автоматично визначається розміром надпису (шрифту).
Якщо ж AutoSize дорівнює false, то вирівнювання тексту всередині компонента визначається властивістю Alignment.
2. Методи для роботи і текстом: AddString, AddObject, Assing, Equals, Delete, Move, IndexOf, Pos.
У C++Builder є кілька стандартних компонентів для управління редагуванням: Edit, LabeledEdit, MaskEdit, Memo, RichEdit.
Компонент Edit (Standard) являє собою однорядковий елемент редагування. Основна властивість – Text типу AnsiString. Якщо присвоювати цьому типу числову інформацію, то вона буде автоматично перетворюватися у рядок.
Наприклад, код виводить у рядок редагування текст „2,5”:
|
Edit1–>Text=5./2; Edit1–>Text=2.5; |
Проте, при зчитуванні з рядка редагування числової інформації необхідно використовувати функції перетворення типів StrToFloat() чи StrToInt(). Наприклад,
|
int A= StrToInt(Edit1–>Text); |
Властивість AutoSize автоматично змінює лише висоту, але не ширину, рядка редагування при зміні шрифту. Цей елемент не має властивості Alignment (оскільки текст може бути вирівняний лише за лівим краєм).
Властивість MaxLength визначає максимальну довжину тексту, що вводиться. Якщо MaxLength=0, то кількість символів не обмежується.
Встановлення властивості ReadOnly в значення true задає текст лише для читання без можливості його редагування.
Введення та відображення цілих чисел.
Компонент СSpinEdit ( Samples) – кнопка-лічильник з вікном редагування. Основна властивість – Value, яка визначає поточне значення числа.
Властивості MinValue,MaxValue задають відповідно мінімальне та максимальне значення чисел.
Багаторядкові вікна редагування.
Для редагування багаторядкового тексту використовуються компоненти Memo та RichEdit.
Компонент Memo (Standard) являє собою багаторядковий елемент редагування. Головна властивість цього компонента – Lines. В ній зберігається текст, що вводиться користувачем. Дозволяється зберігати вміст компонента на диску чи завантажувати в цей компонент текст з файлу.
В компоненті Memo формат (шрифт, його атрибути, вирівнювання) однаковий для всього тексту та визначається властивістю Font.
Компонент RichEdit (Win32) – являє собою маленький текстовий редактор. Компонент працює з текстом у збагаченому форматі RTF. Основна особливість даного компонента – це можливість форматування окремих абзаців чи фрагментів тексту. У цьому компоненті можна змінювати шрифти, використовувати відступи, задавати напівжирний, курсивний чи підкреслений шрифт та інше. Таке форматування виконується на основі двох властивостей – SelAttributes та Paragraph (доступні лише під час виконання додатку).
Головна властивість компонента - властивість Lines типу TStrings.
Властивість SelAttributes типу TTextAttributes визначає атрибути виділеного тексту або, якщо нічого не виділено, то атрибути нового тексту. Наприклад, код дозволяє змінювати атрибути шрифту:
|
if(FontDialog1–>Execute()) RichEdit1–>SelAttributes–>Assign(FontDialog1–>Font); RichEdit1–>SetFocus(); |
Властивість Paragraph типу TParaAttributes відповідає за вирівнювання, відступи та інше в межах поточного абзацу. Вона має власні підвластивості, що й визначають характеристики поточного абзацу тексту. Наприклад, код виконує вирівнювання поточного (виділеного) абзацу:
|
RichEdit1–> Paragraph–> Alignment=taLeftJustify; // за лівим краєм RichEdit1–> Paragraph–> Alignment=taCenter; // за центром RichEdit1–>Paragraph–>Alignment=taRightJustify; // за правим краєм //або //код відображає поточний (виділений) абзац як список – з маркерами: RichEdit1–> Paragraph–> Numbering=nsBullet; |
У компонента RichEdit є можливість збереження та завантаження тексту в форматі RTF. Наприклад:
|
RichEdit1–> Lines–> LoadFromFile(“text.rtf”); // завантаження RichEdit1–> Lines–> SaveToFile(“text.rtf”); // збереження |
Основні спільні властивості елементів редагування Memo та RichEdit:
Основна властивість компонентів Memo та RichEdit – Lines, що містить текст вікна у вигляді списку рядків і має тип TStrings. Доступ до окремого рядка тексту можна отримати за допомогою властивості Strings[int Index]. Наприклад, текст першого рядка:
|
Memo1–>Lines–> Strings[0]; |
Для додавання нового рядка в кінець тексту можна використати методи Add() чи Append() властивості Lines, для видалення рядка – метод Delete(), для знищення всього тексту – метод Clear(). Наприклад:
|
Memo1–> Clear(); Memo1–> Lines–> Add(“The End”); |
Властивість лише для читання Count вказує кількість рядків у тексті.
Властивості Alignment та WordWrap мають такий самий зміст, що й для позначок Label, й визначають вирівнювання тексту та допустимість перенесення довгих рядків.
Властивості MaxLength та ReadOnly мають такий самий зміст, що й для рядка редагування Edit, й визначають максимальну довжину тексту та допустимість редагування тексту.
Властивість ScrollBars визначає наявність смуг прокручування тексту у вікні.
