ТОП 10:

Завершення виконання Delphi-програми



Завершення виконання Delphi-програми, яка “зависла”

Для завершення виконання проекту із середовища Delphi (це буває потрібно, якщо Delphi-програма “зависла”), потрібно виконати команду Прикладного Меню Run ® Program Reset або натиснути комбінацію клавіш Ctrl + F2


Лабораторна робота №1

Тема: Реалізація класу об’єктів. Інкапсуляція даних. Створення конструкторів, деструктора та функцій методів.

Мета роботи: Навчитися описувати структуру класів, полів та властивостей засобами ООП.

Завдання

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;

Питання для самоконтролю:

  1. Дати визначення поняття об’єкт.
  2. Дати визначення поняття клас.
  3. Дати визначення поняття властивість.
  4. Дати визначення поняття метод.
  5. Дати визначення поняття подія.

Лабораторна робота №2

Тема:Робота у середовищі Delphi. Вивчення призначення файлів проекту.

Мета роботи: Ознайомитися із інтегрованим середовищем програмування Delphi та розглянути будову його інтерфейсу. Навчитись працювати з панелями інструментів в середовищі Delphi.

Розробка проекту «Діалог»

Завдання. Створити програму, яка виконуватиме такі дії: користувач вводить своє ім’я, наприклад «Олег», та натискає на клавішу Enter, після чого з’являється запитання «Олег, чи ти полюбляєш займатися спортом?». Якщо далі буде натиснуто кнопку «Так», то з’являється фраза «Молодець! Зі спортом треба дружити!». Якщо ж буде натиснуто кнопку «Ні», то з’являється фраза «Чому? Ти не хочеш бути здоровим?». Для виходу з програми необхідно клацнути на кнопці «Вихід» (мал. Діалог).

Мал. Діалог

Аналіз проекту

Для організації діалогу необхідно мати об’єкт, який дозволить ввести ім’я. для цього скористаємось компонентом Edit (вкладка палітри компонентів Standart) – однорядкове поле введення. Цей компонент призначений для введення, відображення та редагування одного текстового рядка. Для оздоблення вікна програми (розміщення малюнка) скористаємось компонентом Image (вкладка палітри компонентів Additional) – зображення. Цей компонент призначений для відображення малюнків.

ХІД РОБОТИ

Алгоритм розробки проекту

1. Створити папку С:\Delphi\lab_2.

2. Завантажити середовище візуального програмування Delphi.

3. Розмістити на формі візуальні компоненти Label1, Label 2, Label3, Edit1, Button1, Button2, BitBtn1, Image1, встановити значення властивостей компонентів, описати порядок опрацювання подій згідно з таблицею.

Компонент Вкладка вікна «інспектора об’єктів » (Object Inspector) Властивість (Properties)/Подія (Events) Значення властивості /обробка події (тіло процедури обробки події
Forma1 Properties Caption (заголовок форми) Діалог
Color (колір форми) За вибором
Label1 Properties Caption Введи своє ім’я та натисни Enter
Font Шрифт, колір, розмір за вибором
Label2 Properties Caption <Чисте поле>
Font Шрифт, колір, розмір за вибором
Label3 Properties Caption <Чисте поле>
Font Шрифт, колір, розмір за вибором
Edit1 Properties Text <Чисте поле>
Font Шрифт, колір, розмір за вибором
Events OnKeyPress (натиснуто клавішу) if key=#13 then label2.Caption:=edit1.Text+',ти полюбляєш займатися спортом?';
Button1 Properties Caption Так
Font Шрифт, колір, розмір за вибором
Events OnClick label3.Caption:='Молодець зі спортом треба дружити!';
Button2 Properties Caption Ні
Font Шрифт, колір, розмір за вибором
Events OnClick label3.Caption:='Чому? Ти не хочеш бути здоровим?';
BitBtn1 Properties Kind bkClose
Font Шрифт, колір, розмір за вибором
Image1 Properties AutoSize True – розміри змінюватись не можуть
Picture Вибрати малюнок

Пояснення. Компонент Edit має властивість text, що призначена для збереження введеної інформації. Початкове значення цієї властивості (в цьому проекті) – порожній рядок.

4.Зберегти проект у папці С:\Delphi\lab_2.

5.Запустити проект та перевірити правильність його виконання.

Завдання для самостійного виконання

1.Зробити кнопки «Так» та «Ні» допустимими тільки після введення в поле Edit1 імені та натискання клавіші Enter.

Підказка. Значення властивості Enabled кнопок «Так» та «Ні» встановити рівними False, а в процедуру TForm1.Edit1KeyPress додати оператори (зверніть увагу на операторні дужки в операторі умовного переходу):

Button1.Enabled:=True; Button2.Enabled:=True;

2.Очистити поле Edit1, Label2, Label3 для забезпечення можливості повтору діалогу. Кнопки «Так» та «Ні» зробити недоступними.

Підказка. Розмістити на формі ще одну кнопку BitBtn, встановити для неї значення властивості Kind (вид)=bkRetry. Створити для цієї кнопки процедуру опрацювання події OnClick з тілом: Label2.Caption:=’’; Label3.Caption:=’’; Edit1.Text:=’’;

Button1.Enabled:=True; Button2.Enabled:=True;

  1. Зробити так, щоб при повторенні діалогу рядок введення імені був знову активний.

Підказка. Додати до вищевказаної процедури команду Form1.ActiveControl:=Edit1.

  1. Зберегти проект в папці С:\Delphi\lab_2.

Питання для самоконтролю:

  1. Що таке Delphi?
  2. Що називають проектом Delphi?

3. Які є пункти головного меню?

4. Який пункт використовують для закриття чи відкриття файлу-проекту?

5. Яка клавіша використовується для переходу між вікнами форми?

6. Який файл не входить до Delphi - проекту?

7. Яким оператором завжди закінчується модуль проекту *.pas?

8. Яка клавіша використовується для активізації головного меню?

 


Лабораторна робота №3

Тема:Властивості форми у середовищі Delphi.

Мета роботи: Навчитись використовувати властивості компоненти Form.

 

Завдання

1. Створити новий проект.

2. Змінити іконку форми, а назву форми змінити на своє прізвище.

3. Помістити на формі компоненту Button.

4. Дати кнопці заголовок назву кольору і написати код програми, який натисненням на цю кнопку реалізує зміну кольору форми на вказаний.

5. За допомогою властивості Cursor, зробити вигляд покажчика миші при розміщенні його в області форми у вигляді руки.

6. Здійснити подвійне натискання на формі і у процедурі, яка оголошена написати коди програми для переміщення форми у лівий верхній кут.

7. Помістити на формі ще одну компоненту Button, і написати код програми, який натисненням на цю кнопку реалізує зменшення розмірів форми до 500*500 пікселів.

8. Помістити на формі ще дві компоненти Button і назвати їх Maximized і Normal, і у процедурі оброки натиснення кнопки написати коди програми для збільшення форми на весь екран і зменшення до нормального стану відповідно; для цього використати властивість WindowState.

 

Теоретичні відомості

Властивість color типу TColor визначає колір фону (поверхні) компоненту. Тип TColor описаний таким чином:

type TColor = -(COLOR_ ENDCOLORS +1) .. $02FFFFFF;

Значення властивості Color є чотирьохбайтовим шістнадцятирозрядним числом. Старший байт вказує палітру і звичайно рівний коду $00, що відповідає відображенню кольору, найближчого до заданого властивістю Color.

 

Таблиця 1. Константи основних кольорів

Константа Колір Значення
clAqua Яскраво-голубий $FFFF00
clBlack Чорний $000000
clBlue Синій (голубий) $FF0000
clFuchsia Бузковий $FF00FF
clGray Сірий $808080
clGreen Зелений $008000
clLime Яскраво-зелений $00FF00
clMaroon Темно-червоний $000080
clNavy Темно-синій $800000
clOlive Оливковий $008080
clPurple Фіолетовий $800080
clRed Червоний $0000FF
clSilver Срібний $C0C0C0
clTeal Синьо-зелений $808000
clWhite Білий $FFFFFF
clYellow Жовтий $00FFFF

Всі константи, окрім clDkGray і clLtGray, можна вибирати за допомогою Інспектора об'єктів. Додатково під час виконання додатку можна використовувати константи clDkGray і clLtGray, які дублюють значення clGray і clSilver, відповідно.

Властивість Cursor типу TCursor визначає вид покажчика миші при розміщенні його в області компоненти. Delphi пропонує більше двадцяти запропонованих видів покажчика миші і відповідних їм констант, основними з яких є наступні:

 

ü crDefault - покажчик має вигляд за замовчуванням (звичайна стрілка);

ü crNone - покажчик не видно;

ü crArrow - покажчик має вид стрілки;

ü crCross - покажчик має вид хреста;

ü crDrag - покажчик має вид стрілки з листом паперу;

ü crHourGlass - покажчик має вид пісочного годинника.

Властивості Height і Width типу Integer вказують відповідно вертикальний і горизонтальний розміри компоненти в пікселях.

Властивості Left і Тор типу Integer визначають координати лівого верхнього кута компоненти щодо його контейнера, що містить, наприклад, форми або панелі. Відзначимо, що форма також є компонентом, для неї координати відлічуються від лівого верхнього кута екрану монітора.

 

Питання для самоконтролю:

1. Які є вкладки вікна «інспектора об’єктів»?

2. Яка клавіша використовується для відкриття «інспектора об’єктів»?

3. Яку клавішу використовують для багаторазового використання одного і того же елемента керування в вікні форми?

4. Об’єкт Label використовується?

5. Об’єкт Image використовується?

6. Об’єкт Button використовується?

7. Які команди можна використовувати для запуску програми project1?


Лабораторна робота №4

Тема:Опис типів. Створення процедур та функцій.

Мета роботи: Навчитись описувати типи та змінні, а також створювати процедури та функції в Delphi.







Последнее изменение этой страницы: 2016-04-18; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.235.172.213 (0.013 с.)