Практична робота №1. Тема:Рух фігур (Рух об’єкту по периметру)

 

Тема:Рух фігур (Рух об’єкту по периметру)

Мета:Створити програму, у якій об’єкт буде рухатись по полю вікна створеної програми за бажанням користувача

 

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

 

У процесі виконання лабораторної роботи потрібно створити форму, помістити на неї кнопки “Пуск” – при натисканні на яку буде починатись рух фігур по полю та кнопку “Стоп”, при натисканні на неї рух фігур буде припинятись. На форму також потрібно помістити два таймери та малюнок. Один таймер потрібен для того, щоб задати час для подій, які будуть виконуватись з вказаним у таймері інтервалом часу, а призначення другого таймеру таке, що після закінчення часу таймеру рух фігур буде припинятись.

Також потрібно створити ще одну форму та дати їй назву “Заставка”-це вікно,яке буде з`являтись тимчасово перед початком виконання програми. Для появи “Заставки” потрібно написати підпрограму та у головній програмі написати процедуру переходу до виконання підпрограми “Заставка”. Для того щоб форма “Заставка” закрилась потрібно написати ще одну процедуру.

У даній лабораторній роботі показана організація руху компонентів TImage (вигляд) на формі за допомогою таймера та організація руху декількох компонентів TShape (фігура) на формі. Фігури рухаються одночасно у різних напрямках. У лабораторній роботі також створюються: кнопка, яка починає рух фігур; кнопка, яка востановлює первинне положення фігур; кнопка, яка зупиняє рух фігур, а також показано спосіб створення заставки до програми.

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

У звіті потрібні бути присутніми малюнки, які б відображали форми цієї програми.

 

Необхідні теоретичні відомості для виконання практичної роботи:

 

У цій вправі об'єкт буде рухатись по полю вікна Вашої програми на Ваше бажання.

Створіть папку «Рух фігур». Створіть проект. У рядку заголовка форми запишіть: «Рух фігур» (властивість Caption). Дайте формі ім'я FormMove (властивість Name). Збережіть модуль і проект під іменами TJnitMove і ProjectMove у папці «Рух фігур».

Помістіть на форму кнопку «Пуск» (TBitBtn), таймер (TTimer) і картинку (TImage) як показано на рис. 1. Виключіть таймер (Active:=False). У папку «Рух фігур» скопіюйте файл якого-небудь малюнка. Після подвійного кліка на об'єкті Imagel натисніть кнопку Load... (завантажити) і виберіть файл скопійованого малюнка. У властивості Stretch (розтягання) виберіть значення: True (істина), для того щоб малюнок цілком відображався в рамці.

 

Рис. 1 Вікно форми «Рух фігур»

 

За допомогою властивості Name дайте кнопці «Пуск» ім'я; bt_Pusk. У процедурі кліку на кнопці «Пуск» напишіть оператори:

Timerl.Enabled:=True;

Timer1.Interval:=10;

Ви включили таймер і установили для нього інтервал 10 міллісекунд. Це означає, що події, які Ви опишете в процедурі для таймера, будуть відбуватися з таким інтервалом.

Для об'єкта Timerl на листі подій зробіть подвійного щиглика у вікні події OriTimer (таймер включений). Запишіть у тілі процедури наступний оператор:

Imagel. Left: =Irnagel. Lef t + 1;

Цей оператор збільшує відстань від лівого краю об'єкта до лівої границі вікна на одиницю кожні 10 мілісекунд.

Для того щоб об'єкт можна було зупинити в будь-якім місці, додайте кнопку і назвіть її «Стоп». За допомогою властивості Name дайте кнопці «Стоп» ім'я: bt_Stop. Запишіть у тілі процедури для цієї кнопки оператор:

Timerl,Enabled:=False;

Цей оператор відключає таймер, і виходить, скасовуються всі дії, що працюють при включеному таймері.

Якщо вчасно не натиснути кнопку «Стоп», то об'єкт вийде за межі вікна. Щоб це не трапилося, його треба «ставити на місце», коли він «підповзе» до правої границі вікна. Змініть процедуру для таймера в такий спосіб:

if Imagel. Lef t>=ForrnMove .Width - Image 1 .Width

then Imagel.Left:=16

else {зверніть увагу, що перед словом else не ставиться знак ";"}

Imagel.Left:=Imagel.Left+1;

Тут перевіряється умова: відстань від лівого краю об'єкта до лівої границі вікна більше, ніж ширина вікна без ширини об'єкта? Якщо умова виконується, то об'єкт приймає своє первісне положення. Якщо умова не виконується, то кожні 10 миллисекунд відстань від лівого краю об'єкта до лівої границі вікна стає на одиницю більше.

Замість числа «16» впишіть значення властивості Left для Вашого об'єкта.

А чи можна пересувати по полю форми інші об'єкти, ще в різних напрямках? Помістіть в центр форми вісім фігур (TShape). Нехай це будуть круги різного кольору, але однакового розміру, і усі розташовані один на іншому, як би злиті в одне коло. Властивості Left (ліворуч), Тор (угорі), Width (ширина) і Height (висота) для цих об'єктів повинні бути однаковими. І спробуйте зробити так, щоб вони одночасно почали рух у різні сторони. Чотири кола повинні рухатися до границь вікна і чотири кола повинні рухатись до кутів вікна. Додайте кнопки керування рухом фігур: «Рухати кола», «Зупиняти кола» і «Відновлювати кола». Дайте їм імена: bt_MoveCirclef bt_StopCircle і bt_VosstCircle. Додайте ще один таймер. Виключіть його (Active:=False). Запишіть для кнопки btJWoveCircle у тілі процедури, що обробляє щиглик на ній:

Tімег2.Interval:=10;

Timer2.Enabled:-True;

Включається 2-й таймер. Інтервал подій установлюється рівним 10 мілісекундам.

Запишіть у тілі процедури для події OnTimеr (таймер включений) 2-го таймера наступні оператори:

ShapeI.Left:=Shapel.Left+1;

Shape2.Top:=Shape2.Top+1;

Shape3.Left:=Shape3.Left-1;

Shape4.Top:=Shape4.Top-1;

Shape5.Left:=Shape5.Left+1;

Shape5.Top:=Shape5.Top+1;

Shape6.Left:-Shape6.Left-1;

Shape6.Top:=Shape6.Top+1;

Shape7.Left:=Shape7.Left-1;

Shape7.Top:=Shape7.Top-1;

Shape8.Left :=Shape8.Lef t-f-1 ;

Shape8.Top:=Shape8.Top-1;

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

Для того щоб зупинити рух кіл, треба виключити 2-й таймер, тому для кнопки «Зупинити кола» у тілі процедури запишіть оператор:

Timer2.Enabled:=False;

У тілі процедури для кнопки «Відновити кола» повинні знаходитися оператори, що відновлюють первісне положення всіх кіл:

Shapel.Left:-184;

Shapel.Top:-112;

Shape2.Left:-184;

Shape2.Top:=112;

Shape3.Left:=184;

Shape3.Top:=112;

Shape4.Left:=184;

Shape4.Top:=112;

Shape5.Left:=184;

Shape5.Top:=112;

Shape6.Left:=184;.

Shape6.Top:=112;

Shape7.Left:=184;

Shape7.Top:=112;

Shape8.Left:=184;

Shape8.Top:=112;

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

З моменту запуску проекту додатку і до того моменту, коли на екрані монітора відобразиться вікно додатку проходить якийсь час. Чим складніше програма, тим більше цей час. Щоб зайняти користувача до відкриття вікна програми, можна використовувати заставку. Вона відкривається дуже швидко, і її можна забрати з екрана, коли відкрилося основне вікно програми. Заставка може відображати Ваші дані: прізвище, адресу, електронну поштову скриньку і т.п., може відображати логотип або який-небудь малюнок рис. 2. Давайте створимо для нашого проекту таку заставку.

Створіть форму. У Рядку заголовка напишіть: «Заставка». Дайте формі ім'я: FormZastavka. Збережіть модуль під ім'ям UnitZastavka у папці «Рух фігур».

Додайте до проекту створену форму. Пропишіть модуль після службового слова implementation (реалізація). Якщо Ви натиснете клавішу F7, то буде зроблене покрокове виконання програми з заходом у підпрограми. При цьому у вікні опису програми додається вкладиш ProjectMove.

Рис. 2 Вікно форми заставки

 

У ньому описується робота файлу, що запускає проект. До дій файлу треба додати трохи операторів, і вийде наступний запис:

begin

FormZastavka:=TFormZastavka.Create(Application);
FormZastavka.Show; // зробити вікно видимим

FormZastavka.Update; // перемалювати вікно

Application.Initialize; // ініціалізація додатку Application.CreateForm(TFormMove, FormMove);

// створити головне вікно Application.

CreateForm(TFormZastavka, FormZastavka);

{Створити заставку}

FormZastavka.Hide; // зробити вікно невидимим

FormZastavka.Free; // звільнити пам'ять

Application.Run; // запуск додатку

end.

Щоб вікно заставки закрилося при відкритті основного вікна програми, треба створити відповідну процедуру для форми «Рух фігур». Зробіть подвійного щиглика курсором миші на формі «Рух фігур» і запишіть у тілі процедури:

FormZastavka.Close;

Основне вікно додатку відкривається швидко, тому заставка ледь встигає промайнути перед Вашими очима. Але це неважливо, завдяки тому тепер Ви знаєте, як її створити і для іншого додатку.

Контрольні питання:

1. Дайте поняття, що називається інтегрованим середовищем розробки Delphi.

2. Дайте поняття структурі редактора кода.

3. Дайте поняття структурі кода модуля.

4. Визначте, що називається програмним доступом до властивостей об’єктів.

5. Визначте, що називається програмним доступом до методів об’єктів.

6. Охарактеризуйте існуючі прийоми програмування.


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.5: ОСНОВИ СТВОРЕННЯ ПРИКЛАДНИХ ЗАСТОСУВАНЬ








Дата добавления: 2014-12-01; просмотров: 914;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.017 сек.