Головна

Мова програмування Delphi та середовище розробки Turbo Delphi 2006 3 страница

  1. 1 страница
  2. 1 страница
  3. 1 страница
  4. 1 страница
  5. 1 страница
  6. 1 страница
  7. 1 страница

8. · (ДЗ) Відкрийте Turbo Delphi 2006. Розмістіть на формі область зображення. Задайте значення властивостей цього компонента, щоб його розміри були 50 на 100 пікселів, щоб його ліва межа знаходилася на відстані 50 пікселів від лівої межі форми, а верхня - на відстані 80 пікселів від верхньої межі форми. Зв'яжіть з цим компонентом графічне зображення - вашу фотографію. Встановіть такі значення властивостей області зображення, щоб зображення займало всю область. Виконайте проект. Змініть значення властивості області зображення, шоб зображення зайняло всю форму. Повторно виконайте проект. Створіть у власній папці папку Проект 2.4.8 і збережіть у ній проект. може додати ще й колір, назву форми

9. * Відкрийте Turbo Delphi 2006. Розмістіть на формі область зображення. Розмістіть в ньому довільне зображення. Дослідіть експериментально, що визначають інші значення властивості Align. Запишіть висновки в зошиті.

10. * (ДЗ) Відкрийте Turbo Delphi 2006. Розмістіть на формі область зображення. Розмістіть в ньому довільне зображення. Дослідіть експериментально, що визначають значення властивостей Center, Transparent, Visible. Запишіть висновки в зошиті.

11. * Відкрийте Turbo Delphi 2006. У меню File є команди Save, Save As, Save Project As. З'ясуйте призначення кожної з них та їх відмінність від команди Save All. Запишіть висновки в зошиті.

12. * Відкрийте Turbo Delphi 2006. З'ясуйте відмінність команд Close і Close All меню File. Запишіть висновки в зошиті.

13. · Відкрийте готовий проект, наприклад, з папки Проект 2.4.13. З'ясуйте значення п'яти властивостей форми і чотирьох властивостей кнопки. Запищить їх у зошиті.

14. · (ДЗ) Відкрийте готовий проект, наприклад, з папки Проект 2.4.14. Порівняйте значення властивостей поля і напису. Зробіть у зошиті порівняльну таблицю.

15. У Довідці знайти пояснення про 5-6 властивостей форми, кнопки, поля, напису, які не були розглянуті в даному пункті. Зробіть відповідні записи в зошиті.

Практична робота № 5

"Створення й виконання проекту. Використання елементів керування"

Увага! Під час роботи з комп'ютером дотримуйтеся правил безпеки та санітарно-гігієнічних норм.

1. Відкрийте Turbo Delphi 2006.

2. Змініть значення властивостей форми на такі:

- Caption = Практична 5

- Color = clGreen (англ. green - зелений)

- Height = 580

- Width = 580

- Left = 500

- Top = 150

3. Розмістіть на формі два поля, напис і кнопку відповідно до рис. 2.25.

4. Розмістіть на формі область зображення. Змініть значення її властивостей на такі:

- Stretch = True

- Align = alCustom

- Left = 10

- Top = 30

- Height = 150

- Width = 330

Розташуйте в області зображення, наприклад, з файлу практична 5.4.jpg. Встановіть значення властивості області, щоб зображення займало всю область.

5. Розмістіть на формі ще одну область зображень. Змініть значення її властивостей на такі, щоб вона мала розміри 60 на 60 пікселів і розташовувалася у правому верхньому куті вікна. Розташуйте в області зображення, наприклад, з файлу практична 5.5.jpg.

6. Створіть у власній папці папку Практична 5і збережіть у ній проект.

7. Виконайте проект.


2.5. Події та їх обробники

Пригадайте!

1. Назвіть вікна Turbo 2006 та поясніть їхні призначення.

2. Що таке форма? Назвіть кілька її властивостей. Як змінити їх значення?

3. Які спільні властивості мають кнопка, поле, напис і область зображення? Які властивості мають одні з указаних об'єктів і не мають інші?

4. Сформулюйте правила запису виразів у формулах в Excel.

5. Що таке алгоритм? Який алгоритм називається лінійним? Який вигляд має блок-схема лінійного алгоритму?

Події та їх обробники

Працюючи з різноманітними програмами, ви звикли до того, що вибір кнопки завжди приводив до настання певної події: відкриття або закриття певного вікна, змінення значень властивостей певних об'єктів, переміщення певного об'єкта по екрану тощо. Але якщо вибрати кнопку в будь-якому з проектів, які ви створювали при вивченні попереднього пункту, то нічого не відбудеться.

Причиною цієї ситуації є те, що лише самого розміщення на формі кнопки недостатньо, щоб при її виборі щось відбулося. Сам вибір кнопки є певною подією, і програмі потрібно "повідомити", що вона повинна зробити, тобто яка нова подія повинна відбутися при виборі кнопки.

Якщо виділити кнопку, то у вікні Object Inspector на вкладці Events (англ. events - події) можна вказати, яка подія повинна відбутися як реакція на настання іншої події, наприклад, вибір кнопки. Для цього потрібно двічі клацнути в полі справа від напису OnClick (англ. on click - на клацання кнопкою миші). У результаті цих дій у полі OnClick на вкладці Events з'являється текст Button1Click (Button1 - це ім'я виділеної кнопки), а у центральній частині вікна середовища розробки відкривається вкладка Code, на якій створюється заготовка процедури TForm1.Button1Click, команди якої й будуть виконуватися після вибору кнопки Button1 (рис. 2.27).

 
 

Запам'ятайте!

Процедура (лат. procedere - просуватися, йти вперед) - це частина програми, яка має ім'я і яку можна за цим іменем викликати на виконання в різних частинах програми.

Отже, після вибору кнопки Button1 (подія Click) настає подія OnClick, яка полягає у виконанні команд процедури TForm1.Button1Click.

Процедури в Delphiє одним з видів підпрограм. Іншим видом підпрограм в Delphiє функції. Вони будуть розглянуті детальніше в наступних пунктах.

Запам'ятайте!

Процедура, яка виконується при настанні певної події, називається обробником цієї події.

Процедура, яка пов'язана з певним об'єктом, називається методом цього об'єкта.

Такпроцедура TForm1.Button1Click є обробником події OnClick, яка настає після вибору кнопки Button1, а також є методом об'єкта "Кнопка Button1".

Аналогічно викладеному вище, можна створювати обробники інших подій, наприклад:

- OnMouseMove (англ. on mouse move - на переміщення миші) - ця подія настає після наведення вказівника на кнопку

- OnKeyPress (англ. on key press - на натиснення клавіші) - ця подія настає після натиснення клавіші клавіатури

- OnStartDrag (англ. on start drag - на початок перетягування) - ця подія настає після початку перетягування об'єкта

та ін.

Аналогічним чином можна створювати методи й інших об'єктів - елементів керування, наприклад, форми. На рисунку 2.28 наведено вміст вкладки Events форми Form1. Список подій на цій вкладці містить події, які ми вже бачили на вкладці для кнопки, а також деякі інші події. Наприклад:

- OnCreate (англ. on create - на створення) - ця подія настає після початку створенні форми; команди обробника цієї події виконуються під час створення форми, перед її відкриттям

- OnDblClick (англ. on double click - на подвійне клацання) - ця подія настає після подвійного клацання на формі.

Створення процедур-обробників подій в Delphi

Розглянемо детальніше структуру процедури TForm1.Button1Click - обробника події OnClick:

procedure TForm1.Button1Click (Sender: TObject);

Begin

End;

Перший рядок процедури - рядок заголовка. Він складається зі стандартного слова procedure (англ. procedure - процедура), імені процедури TForm1.Button1Clickі круглих дужок, в яких указується, що дана процедура буде виконуватися в результаті настання певної події з певним об'єктом, у даному випадку, події Click з кнопкою Button1. Закінчується рядок заголовка крапкою з комою (;).

Команди процедури, які будуть виконуватися при настанні подіїOnClick, записуються між двома стандартними словами begin(англ. begin - початок) і end(англ. end - кінець). Команди процедури утворюють тіло процедури. Слова beginі end визначають, де починається і де закінчується тіло процедури. Можна сказати, що вони відіграють роль відкриваючої та закриваючої дужки, між якими записується тіло процедури, тому їх називають операторними дужками. Після слова endповинна стояти крапка з комою (;). Кожна команда процедури також повинна закінчуватися крапкою з комою (;).

У попередньому пункті ми встановлювали значення властивостей елементів керування перед запуском проекту на виконання. Тепер же ми можемо змінювати значення цих властивостей під час виконання проекту. Для цього потрібно додати до тексту програми обробник певної події.

Якщо потрібно, щоб в результаті виконання процедури змінилися значення властивостей одного з об'єктів, процедура повинна містити команди встановлення значення властивостей об'єкта. Загальний вигляд цих команд такий

<ім'я об'єкта>.<ім'я властивості> := <значення або вираз>;

Наприклад,

Form1.Color := clGreen; -встановити колір фону вікна - зелений

Form1.Left := 300; -встановитивідступ лівої межі вікна - 300 пікселів

Form1.Width := Form1.Width*2;- збільшити поточну ширину вікна вдвічі

Button1.Caption := 'Збільшити'; - встановити текст заголовка на кнопці - Збільшити(якщо значенням властивості є текст, то його потрібно брати в одинарні лапки)

Label1.Font.Color := clRed; -встановити колір символів, яким буде відображатися текст у написі, - червоний.

Звертаємо вашу увагу, що ці команди є різновидами команд присвоювання, які ми вже використовували при складанні алгоритмів.

Наведемо приклад процедури TForm1.Button1Click, виконання якої змінить колір вікна на синій, змінить текст у рядку заголовка, зменшить його ширину на 150 пікселів, змінить положення кнопки і текст на ній:

procedure TForm1.Button1Click(Sender: TObject);

Begin

Form1.Color := clBlue;

Form1.Caption := 'Значення властивостей змінилися';

Form1.Width := Form1.Width - 150;

Button1.Left := 60;

Button1.Top := 100;

Button1.Caption := 'Змінити!';

End;

На рисунку 2.29 зліва наведено вигляд вікна після запуску проекту, а справа - після вибору кнопки Button1.

Середовище розробки Turbo Delphi 2006має зручні засоби допомоги при введенні тексту проекту:

- після введення першої букви імені об'єкта можна натиснути сполучення клавіш Ctrl+Пропуск і відкриється список імен об'єктів, властивостей, процедур, які починаються з цієї букви (рис. 2.30); з цього списку можна вибрати потрібне і цей текст буде вставлено в текст проекту;

- у ході написання тексту проекту середовище розробки слідкує за синтаксичними правилами написання команд; якщо ці правила порушуються, то текст з помилками або текст одразу після нього підкреслюється червоною хвилястою лінією (рис. 2.30, підкреслюється буква L; рис. 2.31, слово Label1 написано правильно, але після крапки не вказана властивість цього об'єкта; тому підкреслюється наступне слово); потрібно уважно слідкувати за цим і вчасно виправляти всі синтаксичні помилки;

- Turbo Delphi 2006не розрізняє великі і малі літери; але якщо слово утворено з кількох слів, прийнято (і зручно) писати першу літеру кожного слова великою; наприклад, TForm1.Button1Click;

- після введення крапки, що розділяє ім'я об'єкта та ім'я властивості, автоматично відкривається список властивостей даного об'єкта (рис. 2.31); далі ім'я властивості можна не вводити з клавіатури, а знайти в списку і натиснути клавішу Enter; такий спосіб введення запобігає допущенню синтаксичних помилок, особливо тими, хто не знає англійської мови;

- після запуску проекту на виконання компілятор аналізує текст на наявність синтаксичних помилок; якщо такі помилки будуть знайдені, то після аналізу всіх помилок компіляція проекту переривається і червоним кольором виділяється фон першого з тих рядків тексту проекту, який містить синтаксичні помилки, або наступного за ним рядка (на рис 2.32 неправильно написане слово Label, тому червоним фоном позначено саме цей рядок, а на рис. 2.33 пропущено крапку з комою в кінці першої команди, у таких випадках червоним фоном позначається наступний рядок); усі інші помилки підкреслюються червоною хвилястою лінією; крім того, у вікні Structureз'являються повідомлення-підказки про вид помилки; потрібно виправити в тексті програми всі синтаксичні помилки і знову запустити проект на виконання.

Ми розглянули, як створити і використати процедуру TForm1.Button1Click - обробник події OnClick. Аналогічно можна створити інші процедури - обробники інших подій.

Уведення і виведення даних під час виконання проекту

Ми розглянули, як змінити значення властивостей елементів керування під час виконання проекту, використовуючи процедуру TForm1.Button1Click - обробник подіїOnClick. Але в розглянутому прикладі при кожному виборі кнопки будуть виконуватися одні й ті самі команди процедури, а значить кожного разу однаково змінюватимуться значення вказаних у командах процедури властивостей об'єктів. Якщо необхідно під час виконання проекту кожного разу по-іншому змінювати значення властивостей вказаних об'єктів, то потрібно значення цих властивостей якимось чином уводити в програму під час її виконання.

Для введення даних під час виконання проекту можна використати поля. Ви вже знаєте, що текст, який знаходиться в полі, є значенням його властивості Text. Скористаємося цим.

Створимо таку процедуру TForm1.Button1Click - обробник подіїOnClick, виконання якої дозволить встановити довільний колір вікна і збільшити його висоту на довільну цілу кількість пікселів.

Для цього потрібно:

1. Розмістити на формі 2 поля - перше для введення значення кольору вікна, а друге - для введення кількості пікселів.

2. Змінити значення властивості Text обох цих полів на порожнє.

3. Розмістити зліва від кожного поля по напису, змінити значення властивості Caption першого на Колір, а другого на Розмір.

4. Розмістити на формі у правому нижньому куті кнопку, змінити значення її властивості Caption на Змінити.

5. Створити заготовку процедуриTForm1.Button1Click, яка виконуватиметься після вибору кнопки.

6. Увести текст процедуриTForm1.Button1Click:

procedure TForm1.Button1Click(Sender: TObject);

Begin

Form1.Color := Edit1.Text;

Form1.Hight := Form1.Hight + StrToInt(Edit2.Text);

End;

Після запуску проекту відкриється вікно його виконання (рис. 2.34). У відповідні поля потрібно увести потрібні значення кольору форми, наприклад, clRed, і кількості пікселів для збільшення висоти форми, наприклад, 300, після чого вибрати кнопку.

Після вибору кнопки наступить подія OnClick і значить запуститься на виконання процедура TForm1.Button1Click - обробник подіїOnClick При виконанні першої команди процедури текст, який буде введено в перше поле і стане значенням властивості Text цього поля, буде присвоєний властивості Colorформи, у результаті чого колір форми стане заданим.

Не зважаючи на те, що в друге поле буде введено число, програма сприйматиме його як текст, тобто не зможе виконувати з ним математичних операцій. Тому потрібно спочатку перевести цей текст у ціле число. Для цього використовується функція StrToInt (англ. string tointeger - рядок у ціле). Після цього це число додається до поточного значення висоти вікна.

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

Написи можна використовувати не тільки для оформлення підписів об'єктів, а для виведення результатів виконання проекту.

Створимо простий калькулятор, який буде додавати два довільних дійсних числа. Під час виконання проекту користувач буде вводити по одному довільному дійсному числу в кожне поле і вибирати кнопку із заголовком Додати. При виборі кнопки наступатиме подія OnClick, і в результаті настання цієї події виконуватиметься процедура TForm1.Button1Click, яка додаватиме ці числа і виводитиме суму в напис.

Для створення такого проекту потрібно (рис. 2.35):

1. Розмістити на формі два поля, напис для виведення результату, три написи для оформлення і кнопку.

2. Встановити порожні значення властивості Text двох полів і властивості Caption напису для виведення суми.

3. Встановити відповідні значення властивості Caption для інших трьох написів і кнопки.

4. Створити заготовку процедуриTForm1.Button1Click, яка виконуватиметься після вибору кнопки.

5. Увести текст процедуриTForm1.Button1Click(рис. 2.36).

Розглянемо призначення кожної команди наведеної процедури.

Як ми вже зазначали вище, число, яке вводиться в поле, стає значенням його властивості Text і сприймається програмою як текст. Тому перші дві команди процедури є команди присвоювання, які призначені для переведення текстового представлення дійсних чисел у самі дійсні числа (для цього використана функція StrToFloat(англ. string tofloat - рядок у число з плаваючою десятковою комою, тобто у дійсне число) і присвоювання цих чисел змінним х і у відповідно.

Третя команди додає ці числа і присвоює результат змінній z.

Четверта команда встановлює червоним колір символів, яким буде виводитися результат у напис.

П'ята команда переводить результат додавання (значення змінної z) з числа в текст, використовуючи функцію FloatToStr (англ. float tostring - число з плаваючою десятковою комою у рядок) і присвоює цей текст значенню властивості Caption напису з іменем Label1 для виведення результату.

При виконанні створеного проекту користувач уводить у поля числа (наприклад,
-34,7 і 8,15), вибирає кнопку Додати і одержує результат -26,55 (рис. 2.37).

Не закриваючи проект, користувач може ввести в поля інші числа, знову вибрати кнопку Додати і одержати новий результат. І так можна повторювати довільну кількість разів. Це демонструє таку властивість алгоритму як масовість.

Іноді зручно виводити повідомлення не в написи на формі, а в спеціальне окреме вікно. Це можна здійснити, включивши до тексту програми команду ShowMessage(<текст>) (англ. showmessage - показати повідомлення). За цієї команди відкривається спеціальне вікно виведення повідомлення, в якому виводиться текст, указаний у команді. Якщо таку команду включити до процедури, що розглядалася вище, для виведення суми двох уведених дійсних чисел замість останньої команди виведення результату в напис або після цієї команди, то вона виглядатиме так:
ShowMessage('Сума '+FloatToStr(z));.Знак плюс у дужках означає з'єднання двох указаних текстів. Пропуски після слова Сума використовуються для того, щоб у вікні відокремити число від тексту. Результат виконання цієї команди подано на рис. 2.37.

При використанні вікна повідомлення для завершення виконання проекту спочатку слід закрити вікно повідомлення, а потім - вікно проекту.

Змінні та їхні властивості. Правила запису математичних виразів у Delphi

В останній розглянутій процедурі були використані три змінні - х, у, z. У мові програмування Delphi кожна змінна має ім'я, значення і тип.

Запам'ятайте!

Тип змінної визначає, які значення може набувати ця змінна, які операції над нею можна виконувати і ділянку пам'яті якого розміру програма виділить для зберігання значення цієї змінної.

Змінні х, у, z, які використали в останній процедурі, за умовою задачі можуть набувати довільні дійсні значення. Таким значенням відповідає тип Real (англ. real - дійсний). Змінні цього типу можуть набувати цілі й дробові значення від -5×10-324 до 1,7×10308, для кожного значення змінних цього типу виділяється 8 байтів пам'яті.

Типи змінних, які використовуються в процедурі, вказуються після ключового слова var (англ. variable - змінна) у рядку, що знаходиться між рядком заголовку процедури і рядком зі словом begin (рис. 2.36). Цей рядок називається рядком оголошення змінних. Загальний вигляд рядка оголошення змінних такий:

var <список імен змінних одного типу, розділених комою>: <ім'я типу>; <список імен змінних іншого типу, розділених комою>: <ім'я типу>;і т. д.

Якщо змінні набуватимуть тільки цілі значення, то для них доцільно використовувати тип Integer (англ. integer - цілий). Змінні цього типу можуть набувати цілі значення від -2 147 483 648 (-232) до 2 147 483 647(232-1), для кожного значення змінних цього типу виділяється 4 байти пам'яті.

Вище тексту складеної процедури знаходиться ще один рядок var. На рис. 2.36 у цьому рядку вказано ім'я однієї змінної Form1 типу TForm. Ця змінна відповідає формі, що використовується у цьому проекті. У цьому рядку вказуються імена і типи тих змінних, які є доступними в будь-якій частині програми. Такі змінні називаються глобальними. На відміну від глобальних змінних, ті змінні, імена і типи, яких описані в рядку заголовку процедури і в рядку var у тексті певної процедури, доступні тільки командам цієї процедури. Такі змінні називаються локальними. Про локальні та глобальні змінні ми поговоримо детальніше в наступних пунктах.

Об'єктам, які ми розташовуємо на формі, також відповідають змінні, імена яких співпадають з іменами відповідних об'єктів, наприклад, Button1, Edit1. Кожна з цих змінних теж має свій тип, наприклад, Button1: TButton,Edit1: TEdit. Імена і типи цих змінних середовище розробки вносить до тексту проекту автоматично в розділ type (англ. type - тип) (рис. 2.36).

Загальний вигляд команди присвоювання в Delphi такий:
<ім'я змінної> := <вираз>. Вираз може складатися із значення (константи: число, текст в одинарних лапках та ін.), з імені змінної, або містити кілька значень та імен змінних, поєднаних знаками арифметичних операцій, функції, дужки.

Позначення арифметичних дій і правила запису виразів у Delphi схожі на аналогічні правила, які ви розглядали при вивченні табличного процесора Excel. Але й є певні особливості:

а) при введенні в текст проекту десяткових дробів цілу й дробову частину потрібно розділяти крапкою;

б) при введенні при виконанні проекту в поле десяткового дробу розділювач цілої й дробової частини залежить від налаштувань Windows (в українській версії Windows ХР за замовчуванням встановлена кома);

в) ні в тексті проекту, ні при введенні в поле не можна використовувати звичайні дроби;

г) у Delphi немає операції піднесення до степеня; для піднесення до степеня використовується спеціальна функція, яку ми розглянемо пізніше, а поки що степінь з натуральним показником можна замінювати добутком;

д) пріоритет операцій в усіх випадках визначається правилами математики.

Перевірте себе

1. · Що таке обробник події? Як пов'язати з певною подією її обробник?

2. · Що таке процедура? Опишіть структуру процедури - обробника події.

3. · Наведіть загальний вигляд команди, якою можна змінити значення властивості елемента керування. Наведіть приклади таких команд.

4. ·Як позначаються синтаксичні помилки в середовищі розробки? Наведіть приклади.

5. º Які елементи керування можна використати для введення і виведення даних?

6. º Як вивести повідомлення в окреме спеціальне вікно?

6. · Для чого призначені функції StrToFloat, FloatToStr, StrToInt, IntToStr?

7. ·Що визначає тип змінної? Які типи змінних ви знаєте?

8. º Які значення можуть набувати змінні типу Realі типу Integer? Який розмір ділянки пам'яті виділяється для зберігання змінних кожного з цих типів?

9. · Як описуються типи змінних, які використовуються в процедурі; в усій програмі?



  1   2   3   4   5   6   7   8   9   10   11   12   13   14   Наступна

Мова програмування Delphi та середовище розробки Turbo Delphi 2006 1 страница | Налагодження програм | Then begin | Else begin | If RadioButton1.Checked | If RadioButton1.Checked | If CheckBox.Checked | Then begin | Then begin | Then begin |

© 2016-2022  um.co.ua - учбові матеріали та реферати