При знищенні об’єкта для звільнення пам’яті визивається метод деструктора. Ці методи не можна визивати із програмного коду, вони виконуються тільки автоматично.
Змінна описана як клас, який являється вказівкою на єкземпляр класу (але без символу ^). Звернення до такоі змінної - звичайне, а до полів, властивостей, методів класу (тобто до членів класу) - через крапку, як до полів запису RECORD .
ЗАУВАЖЕННЯ!!!
Нe можна описувати змінну типу класвсередині програми як локальну.
Наслідування, інкапсуляціі, поліморфізм–
три основні властивості класу
Наслідування - це можливість породженого класу нащадка (descendant) наслідувати властивості свого предка (ansestor). При цьому наслідуються всі поля, властивості і методи батьківського класу, не потрібно іх засновувати і розробляти додатково. Але породжений клас може володіти більшими можливостями, наприклад, властивість видавати звуки перенесено з батьківського класу „музичні інструменти” на клас „гітара”. Механізм наслідування дозволяє багаторазово застосовувати програмний код. Відповідно класи м.б. систиматизовані в ієархію, як у візуальній біблітеці компонент Delphi (VCL)
Інкапсуляція - це сполучення даних і методів іх обробки в одному об’єкті. Mетоди об’єкту визначають спосіб змінення даних. Наприклад : немає необхідності знати спосіб отримання звуку - через мунштук для духових, або сруни для струнних. Код реалізації метода не важливий, це принцип закриття інформаціі. Спосіб добуття звуку заключений всередині інструмента. Принцип „закриття об’єкту” - оточення не може випадково змінити цей об’єкт.
Поліморфізм - це одий і той же метод, виконується по різному для різних об’єктів, при необхідності конкретного об’єкта можна перевизначити методи, враховуючи особливості даного об’єкта.
Лабораторна робота №2-3.
Тема: Створення простого додатка. Знайомство із системою
об'єктно-орієнтованого візуального проектування Delphi.
Мета:Ознайомиться з ООВП на прикладі створення додатка.
Хід роботи:
I. Конструювання форми :
1. Запустити Delphi {Меню Windows Пуск -Програми}, відкрити новий додаток {File - New Application - «No»}. На екрані відкрилася порожня нова Forma (Form1).
2. На Form розмістити кнопку Tbutton{виділити на сторінці Standard палітри компонентів піктограму кнопки одним клацанням миші, вибрати місце на полі Form1 і клацнути M- з'явиться кнопка, ім'я якої за замовчуванням – «Button1»}.
3. На Form розмістити мітку Label{Аналогічно: Standard- піктограма Label- клацнути на формі - мітка Label1}.
4. Розмістити кнопку під міткою {перетаскуючи мишею}, зменшити розмір вікна {мишею}.
5. Перейменувати кнопку на «Пуск», а мітку на «Перший додаток»{виділити на Form1 кнопку, перейти в Інспектор Об'єктів (якщо його немає на екрані – F11 чи File-View-Object Inspector), змінити властивість Caption (напис, заголовок)}.
6. Напис на мітці зробити жирним шрифтом {виділити мітку, у вікні Інспектор Об'єктів розкрити подвійним клацанням миші властивість Font (шрифт) - аналогічно – властивість Style (стиль) - встановити в True властивість fsBold (жирний)}.
7. Стерти текст у властивості Caption мітки, щоб він не висвічувався, поки користувач не натисне «Пуск». Текст на мітці повинний з'являтися тільки після натискання кнопки.
II. Кодування ( розробка підпрограми обробки події OnClick ).
8. Виділити кнопку наForm1 - Інспектор Об'єктів -відкритисторінку подій Events - подвійне клацання мишею у вікні праворуч від імені події OnClick -перейшли у вікно Редактора Коду з текстом процедури (тобто оброблювач події):
Procedure TForm1.Button1Click (Sender: TObject);Клас форм ім'я компонента ім'я події (без префікса On)
Label1.Caption: =’Перший додаток’;
End;
9.У вікні Редактора Коду вбудоване вікно Провідника (Дослідника) Коду. Його можна закрити.
10. Властивiсть Captionкомпонента Label1 змінена на текст “Пер-ший додаток” за допомогою метода - підпрограми обробки події - Procedure TForm1.Button1Click.
11. Якщо немає помилок Error і зауважень Warning, компілюємо додаток і виконуємо його {File - Run - Run чи F9}.
Контрольні питання.
1. Типи вікон Delphi.
2. Основні компоненти палітри.
3. Формування та конструювання форми.
4. Основні об'єкти форми.
5. Обробка події (Редактор Коду).
6. Провідник Коду.
7. Знавець Коду.
Захист програми паролем
Програміст може показати діалогове вікно з запитом пароля і блокувати виклик методу Application.Run, якщо введений користувачем пароль невірний. У наступному прикладі, у проекті використовуються дві форми: стандартна форма InputQuery і звичайна головна форма Form1. Форма InputQuery створюється при звертанні до однойменної функції, визначеної в модулі Dialogs. Вона являє собою невелике діалогове вікно з однорядковим текстовим полем Tedit і двома кнопками – OK і Cancel. У вікні користувач повинний ввести пароль (Delphi) і натиснути клавішу Enter.
program Password;
uses
Forms,
Dialogs, // У цьому модулі визначена функція InputQuery
Until in ‘Unit1.pas’ {Form1};
{$R *.RES}
var
Passwrd: String;
Begin // Запитуємо пароль:
if InputQuery (‘Вікно введення пароля ’ , ‘ Введіть пароль: ‘ , Passwrd)
then
if Passwrd = ‘Delphi’ then
begin // Все в порядку, пароль вірний
Application.CreateForm (Tform1, Form1);
Application.Run;
end else
ShowMessage ( ‘ Пароль не вірний! ’ ):
end.
Лабораторна роботаN 4-5
Тема:Вивчення палітри компонентів.
Мета: Розробити додаток для виконання арифметичних операцій.
Хід роботи:
I.1. Відкрити новий додаток.
2. Перенести на форму зі сторінки бібліотеки Standardкомпоненти :
Form1 | _ | X | |
Label1Edit1Label2Edit2Label3Panel1Button1 |
три мітки Label для написів у
послідовному порядку ;
два вікна редагування Edit;
панель Panel;
кнопку Button;
3. Замінити надписи в мітках {властивість
Caption} на наступні:
Наприклад: “ число1 “,” число2 “,”результат”,
надпис кнопки – “Розрахунок”.
4.Задати для міток жирний шрифт , а для кнопки – курсив.
5.Очистити властивість Caption у панелі.
6. Для властивостіText(текст) вікон редагуваннязадати «1»- початкове зна-
ченнятексту .
7.Змінити вид панелі:
основне поле - Bevellnner =BvRaised («опуклий»).
рамка – Bevelouter = BvLowered (»утоплений»)
8. У редакторі коду написати обробку події – клацання кнопки OnClick
Panel1.Caption:=Edit1.Text+’*‘+Edit2.Text+’=’+
FloatToStr (StrToFloat (Edit1.text) * StrToFloat (Edit2.text));
9.Зберегтидодаток {створитисвійпідкаталог (як папку Windows) :
{ File-Saveallчи швидкими кнопками головного вікна}.
10.Зкомпілювати і виконати розроблений проект (додаток).
II.Розробитипроект згідно варіанта завдання для розрахунку:
1.Площі трикутника за сторонами А та В і кутом між ними α :S= ½ A*B*Sinα
2.Площі прямокутного трикутника за двома його катетами А та В :S=½ A*B
3.Площі рівностороннього трикутника за довжиною його сторони : S=√3/4 a2.
4.Площі трикутника за довжинами його сторін А, В та С за формулою Герона
S= √P∙(P-A) ∙ (P-B) ∙ (P-C),де Р=½(А+В+С)
5.Площі трапеції за двомаосновами А та В і висотою Н : S=(А+В)*Н.
6.Довжини кола по заданому радіусуR: L=2πR.
7.Площі кругу по заданому радіусі R: S= πR2
8.Периметра Р і площі S прямокутника за його сторонами А та В
9.Сторону трикутника С за двома іншими сторонам А та В і кутом між ними :
C= А2+B2-2A*B*Cosβ
10.Площі ромба за його діагоналями Н1 і Н2 : S=H1*H2
Контрольні питання :
1.Компоненти Edit і Panel, їх властивості.
2.Візуальні властивості «Вид».
3.Функції перетворення типів FloatToStr , StrToFloat (IntToStr, StrToInt).
4.Компіляція і виконання проекта (додатка).
5.Розширення файлів Delphi.
Лабораторна робота № 6-7
Тема:Розробка додатків з використанням меню.
Мета:освоїти розробку додатків з використанням меню.
Хід роботи:
I.Створення головного меню.
1.Відкрити новий додаток (проект).
2.АктивізуватиFORMу , змінити значення властивості Caption на МMenu ,а Name- на Mform.
3.Зберегти проект {File-SaveProjectAs-з'явиться діалогове вікноSaveUnit1 As- створюємо
нову папку , вибравши осмислену назву проекту (наприклад ЛР_6_7).Розкриваємо створену папку
у поле Ім'я файлу- дати ім'я програмного модуля-Зберегти. Відкриється діалогове вікно
SaveProjectAs.(зберегти проект). У поле Ім'я файлу-ім'я файлу проекту(LR 6-7).
Розширення файлу модуля -.pas, файл проекту -.dpr}
4.На формі в лівому верхньому куткурозмістити компонент TMainMenu зStandard(це не візуальний
компонент, тобто його піктограма не відповідає явному виду, а миша показує його наявність.
Настроювання його ведеться за допомогою спеціального редактора MenuDesigner, що викликається