
- •Палітра Компонентів Delphi
- •Редактор Коду Delphi
- •Конструктор Форм
- •Інспектор Об’єктів. Принцип візуальної розробки програм
- •Завершення роботи з проектом та створення нового проекту
- •Збереження проекту
- •Відкриття існуючого проекту
- •Робота з Delphi-програмою Структура Delphi-програм
- •Виконання Delphi-програми
- •Завершення виконання Delphi-програми
- •Лабораторна робота №1
- •Завдання
- •Теоретичні відомості
- •Лабораторна робота №2
- •Розробка проекту «Діалог»
- •Мал. Діалог Аналіз проекту
- •Хід роботи
- •Завдання для самостійного виконання
- •Лабораторна робота №3
- •Завдання
- •Теоретичні відомості
- •Лабораторна робота №4
- •Розробка проекту «Ваша вага»
- •Хід роботи
- •Розробка проекту «Обмін валюти»
- •Хід роботи
- •Лабораторна робота №5
- •Завдання
- •Хід роботи
- •Теоретичні відомості Оператори if і case мови Паскаль
- •Кнопки-перемикачі в Delphi|
- •Лабораторна робота №6
- •Завдання
- •Хід роботи
- •Теоретичні відомості Типи даних для роботи з|із| рядками Короткі рядки типу|типа| ShortString| і String|[n]
- •Довгий рядок типу|типа| String|
- •Компонент tComboBox|
- •Компонент tBitBtn|
- •Обробка подій
- •Лабораторна робота №7
- •Розробка проекту «Гороскоп»
- •Хід роботи
- •Розробка проекту «Фізичний конвектор»
- •Хід роботи
- •Лабораторна робота №8
- •Розробка проекту «Рейтинг країн за результатами олімпійських змагань»
- •Хід роботи
- •Лабораторна робота №9
- •Розробка проекту «Журнал олімпіади»
- •Хід роботи
- •Лабораторна робота №10
- •Завдання
- •Хід роботи
- •2. Установка
- •3. Тестування створеної компоненти
- •Лабораторна робота №11
- •Розробка проекту «Побудова графіка функції»
- •Хід роботи
- •Лабораторна робота №12
- •Розробка проекту «Графічний конструктор»
- •Хід роботи
- •Лабораторна робота №13
- •Розробка проекту «Чат для локальної та глобальної мережі»
- •Хід роботи
- •Розробка форми на настройок
- •Розробка програмного коду
- •Лабораторна робота №14.
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Етапи створення баз даних в Delphi.
- •Компонент тТаblе
- •Модуль даних
- •Лабораторна робота №15
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №16
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №17
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №18
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Список літератури
Завдання
1. Записати опис структури класу із трьома полями довільних типів, клас походить від класу:
1-5. TObject
6-10. TPersistent
11-15. TComponent
16-20. TControl
21-25. TWinControl
26-30. TCustomControl
2. Здійснити опис трьох довільних полів класу ( клас згідно варіанту завдання 1).
3. Здійснити опис трьох довільних властивостей класу ( клас згідно варіанту завдання 1).
Теоретичні відомості
В мові Object Pascal класи є спеціальними типами даних і використовуються для опису об'єктів. Відповідно об'єкт, що має тип якого-небудь класу, є екземпляром цього класу або змінною цього типу. Клас є особливим типом запису, має в своєму складі такі елементи (члени), як поля, властивості і методи. Поля класу аналогічні полям запису і служать для зберігання інформації про об'єкт. Методами називаються процедури і функції, призначені для обробки полів. Властивості займають проміжне положення між полями і методами. З одного боку, властивості можна використовувати як поля, наприклад, привласнюючи їм значення за допомогою оператора привласнення; з другого боку, усередині класу доступ до значень властивостей виконується методами класу.
Опис класу має наступну структуру:
Туре <Ім’я класу> = class (<Ім’я батьківського класу>)
private
<Приватні описи>;
protected
<Захищені описи>;
public
<Загальнодоступні описи>;
published
<Опубліковані описи>;
end;
В приведеній структурі описами є оголошення властивостей, методів і подій.
Приклад. Опис класу.
type
TColorCircle = class(TCircle);
FLeft
FTop
FRight
FBottom: Integer;
Color: TColor;
end;
Тут клас TColorCircle створюється на основі батьківського класу TCircle. В порівнянні з батьківським, новий клас додатково містять чотири поля типа integer і одне поле типу TColor.
Якщо як батьківське використовується клас Tobject, який є базовим класом для всіх класів, то його ім'я після слова class можна не указувати. Тоді перший рядок опису виглядатиме так:
type TNewClass = class
Об'єкти як екземпляри класу оголошуються в програмі в розділі var як звичайні змінні. Наприклад
var
CCirclel: TColorCircle;
CircleA: TCircle;
Як і у разі записів, для звернення до конкретного елемента об'єкту (полю, властивості або методу) указується ім'я об'єкту і ім'я елемента, розділені крапкою, тобто ім'я елемента є складовим.
Приклад. Звернення до полів об'єкту.
var
CCirclel: TColorCircle;
Begin
. . .
CCirclel.FLeft:=5;
CCirclel.FTop:=1;
. . .
end;
Тут приведено безпосереднє звернення до полів об'єкту, звичайно це робиться за допомогою методів і властивостей класу.
Поле класу є даними, що містяться в класі. Поле описується як звичайна змінна і може належати до будь-якого типу. Приклад. Опис полів.
type TNewClass = class(TObject)
private
FCode: integer;
FSign: char:
FNote: string;
end;
Тут новий клас TNewClass створюється на основі базового класу Tobject і одержує на додаток три нові поля Fcode, FSign і FNote, має, відповідно, цілочисельний, символьний і рядковий типи. Згідно прийнятій угоді, імена полів повинні починатися з префікса f (від англ. Field - поле).
Властивості реалізують механізм доступу до полів. Кожній властивості відповідає поле, що містить значення властивості, і два методи, що забезпечують доступ до цього поля. Опис властивості починається із слова property, при цьому типи властивості і відповідного поля повинні співпадати. Ключові слова read і write є зарезервованими усередині оголошення властивості і служать для вказівки методів класу, за допомогою яких виконується читання значення поля, пов'язаного з властивістю, або запис нового значення в це поле.
Приклад. Опис властивостей.
type TNewClass = class(TObject)
private
FCode: integer;
FSign: char:
FNote: string;
published
property Code: integer read FCode write FCode;
property Sign: char read FSign write FSign;
property Note: string read FNoter write FNote;
Для доступу до полів Fcode, FSign і Fnote, які описані в захищеному розділі і неприступні іншим класам, використовуються властивості code, sign і Note, відповідно.
Метод є підпрограмою (процедуру або функцію), що є елементом класу. Опис методу схожий на опис звичайної підпрограми модуля. Заголовок методу розташовується в описі класу, а сам код методу знаходиться в розділі реалізації. Ім'я методу в розділі реалізації є складовим і включає тип класу.
Наприклад, опис методу Button1Click виглядатиме так:
Interface
. . .
type
TForml = class(TForm)
Buttonl: ТВutton;
procedure ButtonlClick(Sender: TObject);
end;
. . .
implementation
. . .
procedure TForml.ButtonlClick(Sender: TObject);
begin
Close;
end;
Метод, оголошений в класі, може викликатися різними способами, що залежить від виду цього методу. Вид методу визначається модифікатором, який указується в описі класу після заголовка методу і відділяється від заголовка крапкою з комою. Приведемо деякі модифікатори: virtual – віртуальний метод; dynamic – динамічний метод; override – метод, що перевизначається; message – обробка повідомлення. За умовчанням всі методи, оголошені в класі, є статичними і викликаються як звичайні підпрограми. Методи, які призначені для створення або видалення об'єктів, називаються конструкторами і деструкціями, відповідно. Описи даних методів відрізняються від опису звичайних процедур тільки тим, що в їх заголовках стоять ключові слова constructor і destructor. Як імена конструкторів і деструкції в базовому класі Tobject і інших багато кого класах використовуються імена Create і Destroy.
Програмістам, що давно працюють в Windows, напевно, не потрібно пояснювати значення терміну "подія". Саме це середовище і написані для неї програми управляються подіями, що виникають в результаті дій користувача, апаратури комп'ютера або інших програм. Звісточка про настання події – це повідомлення Windows, отримане так званій функцією вікна. Таких повідомлень сотні, і, за великим рахунком, написати програму для Windows – значить визначити і описати реакцію на деякі з них. Працювати з такою кількістю повідомлень, навіть маючи під рукою довідник, нелегко. Тому однією з великих переваг Delphi є те, що програміст позбавлений від необхідності працювати з повідомленнями Windows (хоча така можливість в нього є). Типових подій в Delphi – не більше двох десятків, і всі вони мають просту інтерпретацію, що не вимагає глибоких знань середовища. Розглянемо, як реалізовані події на рівні мови Object Pascal. Подія – ця властивість процедурного типу, призначена для створення призначеної для користувача реакції на ту або іншу вхідну дію: property OnMyEvent: TMyEvent read FOnMyEvent write FOnMyEvent;
Питання для самоконтролю:
Дати визначення поняття об’єкт.
Дати визначення поняття клас.
Дати визначення поняття властивість.
Дати визначення поняття метод.
Дати визначення поняття подія.