
- •Розділ 1. Об’єктно-орієнтоване програмування
- •Тема 1.1. Візуальне програмування.
- •Тема 1.2. Приклади та застосування інкапсуляції, успадкування, поліморфізму.
- •Тема 1.3. Бібліотека візуальних компонентів vcl та її базові класи.
- •1. Клас tWinControl.
- •2. Клас tСustomControl.
- •3. Клас tGraphicControl.
- •Тема 1.4. Обробка виняткових ситуацій.
- •1. Використовування виняткових ситуацій.
- •2. Протоколювання виняткових ситуацій.
- •3. Коди помилок у виняткових ситуаціях.
- •4. Виняткова ситуація eAbort. Функція Assert.
- •Розділ 2. Мова програмування Object Pascal.
- •Тема 2.1. Середовище Delphi.
- •Тема 2.2. Елементи мови Object Pascal.
- •1. Коментарі.
- •2. Логічні вирази.
- •Тема 2.3. Типи даних, процедури та функції.
- •1. Вказівники та динамічна пам'ять. Динамічна пам'ять
- •Вказівники
- •Виділення і звільнення динамічної пам'яті
- •Процедури і функції для роботи з динамічною пам'яттю
- •Тема 2.4. Управляючі структури Object Pascal.
- •Розділ 3. Програмування в середовищі Delphi.
- •Тема 3.1. Застосування списків. Способи запису/читання зі списків.
- •Є списком CheckBox елементів.
- •Тема 3.2. Масиви.
- •1. Пошук мінімального (максимального) елементу масиву.
- •2. Пошук в масиві заданого елементу.
- •Тема 3.3. Робота з файлами.
- •Тема 3.4. Типи даних визначені програмістом.
- •1. Показники.
- •2. Динамічні змінні.
- •Тема 3.5. Графічні програми.
- •1. Бітові образи.
- •2. Мультиплікація.
- •Властивості компоненту Timer
- •Тема 3.6. Приклади застосування анімацій у Delphi.
- •Тема 3.7. Рекурсія.
- •1. Крива Гільберта.
- •2. Пошук шляху.|колії|
- •Значення властивостей компоненту stringGrid1
- •3. Пошук найкоротшого шляху.|колії|
- •Тема 3.8. Компоненти для інтернету. Компонента tSocketConnection
- •Розділ 4. Бази даних.
- •Тема 4.1. Види баз даних. Структура та зв’язки між таблицями. Бази даних
- •Класифікація баз даних
- •Структура бази даних
- •Модель бази даних в Delphi
- •Тема 4.2. Модифікація структури таблиці в bde.
- •1. Зміна структури таблиці.
- •2. Встановлення перевірок правильності даних.
- •3. Завдання вторинних індексів.
- •Тема 4.3. Об’єкти відображення даних бази даних Delphi.
- •1. Класифікація компонентів відображення даних.
- •2. Елемент керування тdbGrid.
- •3. Компонент tdbEdit.
- •4. Компонент tdNavigator.
- •Тема 4.4. Обчислювальні поля і поля підстановки в Delphi.
- •1. Створення поля підстановки (поля синхронного перегляду).
- •2. Обчислювальні поля.
- •Тема 4.5. Компонента tdbEdit.
- •Тема 4.6. Переміщення по записам таблиці. Набір методів і властивостей tDataSet. Огляд
- •Клас tDataSet
- •Відкриття і закриття DataSet
- •Тема 4.7. Налаштування фільтрів.|
- •Тема 4.8. Приклади застосування пошуку.
- •Тема 4.9. Поєднання різних видів пошуку.
- •Тема 4.10. Типи даних та пошук в діапазоні.
- •Список літератури
Тема 1.3. Бібліотека візуальних компонентів vcl та її базові класи.
Клас TWinControl.
Клас TСustomControl.
Клас TGraphicControl.
1. Клас tWinControl.
Клас TWinControl забезпечує створення і використовування віконних елементів управління (див. вище). Нагадаємо, що віконний елемент управління має системний дескриптор вікна hwnd. Проте віконними елементами є не тільки форми і діалоги, але і більшість стандартних елементів управління.
Нові механізми, інкапсульовані в класі, забезпечують виконання характерних для віконних елементів функцій: прийом і передачу фокусу, відгук на дії мишею і введення з клавіатури і т. д. Розглянемо основні властивості і методи класу.
Дескриптор вікна міститься у властивості
property Handle: HWND;
При створенні віконного елемента управління викликається метод
procedure CreateParams(var Params: TCreateParams); virtual;
який заповнює структуру TCreateParams необхідними значеннями:
type
TCreateParams = record
Caption: PChar;
Style: DWORD;
ExStyle: DWORD;
X, В: Integer;
Width, Height: Integer;
WndParent: HWND;
Param: Pointer
WindowClass: TWndClass;
WinClassName: array[0..63] Char;
end;
Для створення дескриптора вікна для елемента управління використовується метод
procedure CreateHandle; virtual;
Операційна система створює дескриптор вікна тільки разом з самим вікном. Тому метод CreateHandle тільки створює вікно, а для привласнення властивості Handle значення дескриптора вікна викликає метод createwnd.
Для передачі фокусу між елементами управління на одній формі часто використовується клавіша <Таb>. Порядок переміщення фокусу між елементами визначається властивістю
type TTabOrder = -1..32767;
property TabOrder: TTabOrder;
В першу чергу фокус передається компоненту з мінімальним значенням властивості. Далі – за збільшенням значення. При перенесенні компоненту на форму це значення задається автоматично відповідно до числа компонентів на формі.
Компонент можна примусити не відгукуватися на клавішу <Таb>. Для цього властивості
property TabStop: Boolean;
необхідно привласнити значення False.
Для передачі фокусу прямо елементу управління застосовується метод
procedure SetFocus; virtual;
Щоб взнати, чи має елемент управління фокус, в даний час використовується метод
function Focused: Boolean; dynamic;
Всі віконні елементи мають рамку по контуру (втім, вона може бути не видно). Її параметри задаються групою властивостей:
property BevelEdges: TBevelEdges;
задає, які сторони входять в рамку;
property Bevellnner: TBevelCut; property BevelOuter: TBevelCut;
задають зовнішній вигляд рамки;
property BevelKind: TBevelKind;
визначає стиль рамки;
property BevelWidth: TBevelWidth;
задає розмір рамки.
Властивість property Brush: TBrush;
визначає параметри кисті (колір і заповнення), якій малюється фон елемента.
Віконний елемент може містити інші компоненти. Для управління ними застосовується індексований список покажчиків, що представляють властивість
property Controls[Index: Integer]: TControl;
Загальне число дочірніх елементів управління міститься у властивості
property ControlCount: Integer;
Зовнішній вигляд віконного елемента визначається властивістю
property Ctl3D: Boolean
При значенні True елемент управління має тривимірний вигляд. Інакше елемент виглядає плоским.
Для виклику теми контекстної допомоги для конкретного елемента управління призначена властивість
type THelpContext = -MaxLonglnt..MaxLonglnt;
property HelpContext: THelpContext;
Значення властивості повинне відповідати номеру теми у файлі допомоги.
В класі TwinControl додана можливість використовування редакторів способу введення (Input Method Editor, IME). Такі редактори дозволяють пристосувати стандартну розкладку клавіатури для символьних мов для введення нестандартних символів (ієрогліфів і т. д.). Редактори IMЕ є спеціально встановлюваним в операційній системі програмним забезпеченням (ПЗ). Ім’я такого редактора задається у властивості ImeName. Режим роботи редактора визначається властивістю ImeMode.
В класі TWinControl додано ще декілька методів-обробників подій, що забезпечують реакцію на введення з клавіатури, отримання і втрату фокусу.