Практикум по Delphi для решения прикладных задач
f65d50f6

Прыгающая кнопка


Цель работы - создать программу-игру, выполняющую следующие действия:

1. После запуска программы в окне изображается беспорядочно прыгающая кнопка.

2.      Необходимо успеть щелкнуть по ней.

3.      Кнопка перепрыгивает из одного места в другое по сигналу, полученному от таймера.

4.      Для выхода из программы необходимо щелкнуть мышью на закрывающей кнопке в строке заголовка.

Описание плана разработки программы

1.      Открыть новый проект.

2.     

Разместить на форме экземпляры компонентов: командная кнопка Button, таймер Timer.

3.      Выполнить следующие действия:

Таблица 11.

Выделенный объект



Вкладка окна

Object Inspector

Имя свойства/

имя события

Действие

Form1

Properties

Caption

Установка имени формы «Прыгающая кнопка»

ClientWidth (Внутренняя ширина)

Присвоить значение 300

ClientHeigth (Внутренняя высота)

Присвоить значение 200

BorderStyle (тип границы)

Выбрать значение bsSingle (тонкая)

Events

OnCreate

Randomize;

Button1

(Вкладка Standard)

 

Properties

Caption

Ввести надпись «Нажми меня»

TabStop

Присвоить значение False. Это свойство разрешает выбрать данный элемент управления клавишей Tab. Клавиатурой пользоваться запрещается.

Visible

Присвоить значение False. Сначала кнопка невидима.

Height

Присвоить значение 30

Width

Присвоить значение 80

Events

OnClick

Button1.Caption := ‘Готово’;

Button1.Enabled := False;

Timer1.Enabled := False;


Продолжение таблицы 11.

Выделенный объект

Вкладка окна

Object Inspector

Имя свойства/

имя события

Действие

Button2

(Вкладка Standard)

 

Properties

Caption

Ввести надпись «Выход»

Default (по умолчанию)

Выбрать значение True

Left (слева)

Присвоить значение 110

Top (сверху)

Присвоить значение 160

Width (ширина)

Присвоить значение 80

Height (высота)

Присвоить значение 30

Events

OnClick

Close;

Timer1

(Вкладка System)

Properties

Interval (интервал)

Присвоить значение 500 (промежуток времени измеряется в миллисекундах)

Events

Timer

var i: Integer;

begin

  i:=Random(9);

  Button1.Visible := True;

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

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

end;

4.      Сохраните проект, запустите и протестируйте его.

Листинг подпрограммы

procedure TForm1.Button2Click (Sender: TObject);

begin

   Close;

end;

procedure TForm1.Timer1Timer (Sender: TObject);

var i: Integer;

begin

  i:=Random(9);

  Button1.Visible := True;

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

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

end;

procedure TForm1.Button1Click (Sender: TObject);

begin

   Button1.Caption := ‘Готово’;

   Button1.Enabled := False;

   Timer1.Enabled := False;

end;

procedure TForm1.FormCreate (Sender: TObject);

begin

   Randomize;

end;

Задание для самостоятельного выполнения

  1. Измените игру так, чтобы скорость можно было настраивать в процессе игры.
  2. Создайте две кнопки: Медленнее и Быстрее. Щелчок на одной из них будет увеличивать или уменьшать значение свойства Timer1.Interval на 100 миллисекунд.



Содержание раздела