Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
samost_pascal_delphi_2012.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
4.33 Mб
Скачать

Практична робота № 2.

Тема: Створення гри «Спіймай кнопку».

Мета: Вивчення особливостей компонента Timer.

Короткі теоретичні відомості.

Компонент Timer (палітра System) дозволяє задавати в додатку інтервали часу. Таймер знаходить численні застосування: синхронізація мультиплікації, закриття якихось вікон, з якими користувач довгий час не працює, включення зберігача екрану або закриття зв'язків з віддаленим сервером при відсутності дій користувача, регулярний опитування якихось джерел інформації, завдання часу на відповідь в навчальних програмах - все це безліч завдань, в яких потрібно задавати інтервали часу, вирішується за допомогою таймера.

Таймер - невізуальних компонент, який може розміщуватися в будь-якому місці форми. Він має дві властивості, що дозволяють їм управляти: Interval - інтервал часу в мілісекундах і Enabled - доступність. Властивість Interval задає період спрацювання таймера. Через заданий інтервал часу після попереднього спрацьовування, або після програмної установки властивості Interval, або після запуску програми, якщо значення Interval встановлено під час проектування, таймер спрацьовує, викликаючи подія OnTimer. В обробнику цієї події записуються необхідні операції.

Якщо задати Interval = 0 або Enabled = false, то таймер перестає працювати. Щоб запустити відлік часу треба або задати Enabled = true, якщо встановлено позитивне значення Interval, або задати позитивне значення Interval, якщо Enabled = true.

Наприклад, якщо потрібно, щоб через 5 секунд після запуску програми закрилася форма - заставка, що відображає логотип програми, на неї треба розмістити таймер, задати в ньому інтервал Interval = 5000, а в обробник події OnTimer вставити оператор Close, що закриває вікно форми.

Хід роботи.

  1. Запустіть Delphi. При цьому автоматично буде створений новий проект з формою.

  2. Збережіть проект у своїй папці, створивши в ній папку Спіймай кнопку. Для чого виконайте команду Save All, Unit назвіть U_catch, проект - P_ catch.

  3. Для оформлення вікна програми знадобиться три компоненти - стрибуча командна кнопка (Button1), кнопка виходу (Button2) і таймер. Зразковий вид форми показаний на малюнку:

  1. Додайте на форму 2 копки.

  2. Задайте першій кнопці наступні властивості:

Caption - Введіть заголовок: Натисни мене.

TabStop - False. Ця властивість дозволяє вибирати елемент управління клавішею TAB. У цій грі клавіатурою користуватися не можна.

Visible - false. Спочатку кнопка повинна бути невидима, щоб користувач не знав, де вона знаходиться.

Height - 30, Width - 80

Left -10, Top -10. У лівому верхньому положенні відстань між кнопкою і краями форми 10 пікселів.

  1. Тепер необхідно обчислити, який розмір буде мати вікно програми. Рисунок ілюструє, як саме це повинно бути зроблено.

  1. Задайте властивості форми ClientWidth (Внутрішня ширина) - значення 360, властивості ClientHeight (Внутрішня висота) - 200. На малюнку замість 100-120, замість 80-100.

  2. Щоб розмір вікна не можна було змінити в ході роботи програми, задайте властивості форми BorderStyle – bsSingle.

  3. Для кнопки «Вихід» Button2 задайте властивості:

Left - 110, Top - 160, Width - 80, Height - 30.

Default - True. Фокус введення завжди буде належати цій кнопці і натискання клавіші Enter буде пов'язано тільки з нею.

  1. Додайте на формі компонент Timer (вкладка System).

    1. Властивості Interval задайте значення 500.Проміжок часу задається в мілісекундах. Тому кнопка буде стрибати на нове місце кожні півсекунди.

    2. Створіть для компонента Timer обробник події OnTimer (Сигнал таймера). Подвійний клік на білому тлі навпаки події OnTimer вкдадки Events

procedure TForm1.Timer1Timer (Sender: TObject);

var i: integer ;/ / описуємо локальну змінну

begin

i: = random (9); / / випадкове значення в діапазоні від 0 до 9

button1.Visible: = true;

button1.Top: = 10 +50 * (i div 3);

button1.Left: = 10 +100 * (i mod 3);

end;

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

  1. Напишіть процедуру для клацання на кнопці Button1 наступним чином:

procedure TForm1.Button1Click (Sender: TObject);

begin

button1.Caption: = 'Готово!';

button1.enabled: = false;

timer1.enabled: = false;

end;

Якщо клацання стався, значить, гра закінчилася перемогою. Щоб повідомити про це, змінюємо напис на кнопці і відключаємо кнопку і таймер (властивість Enabled).

  1. Створіть обробник події при натисканні на кнопці Button2 (Вихід):

procedure TForm1.Button2Click (Sender: TObject);

begin

form1.Close

end;

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

procedure TForm1.FormCreate (Sender: TObject);

begin

randomize

end;

  1. Виконайте самостійно:

    1. Додайте дві кнопки «Швидше» і «Повільніше». Клацання по одній з них буде збільшувати значення інтервалу таймера на 100 мілісекунд, а за іншою - зменшувати його в 2 рази.

,

Результатом виконання даної практичної роботи є створений згідно із завданням програмний продукт. Виконане завдання повинне бути пред'явлено викладачеві в електронному вигляді. В ході захисту практичної роботи студент повинен продемонструвати свої навички роботи з вивченими компонентами і методами проектування інтерфейсу користувача.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]