23372

Использование компонента Timer. Организация простейшей мультипликации

Лабораторная работа

Информатика, кибернетика и программирование

В данной работе приводятся примеры работы компонента Timer обеспечивающего доступ к системному таймеру компьютера и его использование совместно с компонентом Image для создания простейшей мультипликации. Компонент Timer. Прием сообщений от таймера компьютера в приложении Delphi обеспечивает специальный компонент Timer со страницы System Палитры Компонентов.

Русский

2013-08-04

68.5 KB

35 чел.

Лабораторная работа 7

Использование компонента Timer.

Организация простейшей мультипликации.

В данной работе приводятся примеры работы компонента Timer, обеспечивающего доступ к системному таймеру компьютера, и его использование совместно с компонентом Image для создания простейшей мультипликации.

Компонент Timer.

Таймер – это системный генератор событий, представляющий собой специальную микросхему, установленную на материнской плате компьютера. Он периодически сообщает Windows о завершении заданного промежутка времени. Прием сообщений от таймера компьютера в приложении Delphi обеспечивает специальный компонент Timer со страницы System Палитры Компонентов.

Ниже приведена последовательность действий, которая должна быть проделана для того, чтобы этот компонент начал функционировать в Вашем приложении:

  •  выбрать компонент Timer на вкладке System Палитры Компонентов и поместить его на форму проекта;

Примечание. Данный компонент является невизуальным, поэтому в процессе проектирования приложения он выглядит как иконка, размеры которой изменить нельзя, а её месторасположение на форме значения не имеет.

  •  в свойстве Interval в Инспекторе Объектов установить желаемый период следования событий в миллисекундах от 1 до 65.535;

 

Примечание. Если установить значение 1000 (оно стоит по умолчанию), то включится секундный таймер, а при значении 100 – таймер будет генерировать события через одну десятую секунды.

  •  компонент Timer имеет только одно событие: OnTimer (Срабатывание таймера). Если дважды щелкнуть мышью в поле значения справа от имени события OnTimer в Инспекторе Объектов, или на самом объекте Timer, помещенном на форму, Delphi сформирует заготовку процедуры обработки этого события. Вам остаётся только между слов begin и end вставить необходимые операторы, которые будут периодически выполняться с заданной частотой таймера.

Задание 1. Создание приложения «Цифровые часы».

В приложении «Цифровые часы» будет продемонстрировано, как создать обработчик события для компонента Timer.

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

  •  откройте новый проект;
  •  форме дайте название «ЧАСЫ»;
  •  для того, чтобы вид часов не мог изменяться в ходе выполнения программы, изменим некоторые свойства самой формы:
  •  сделайте форму текущей, щелкнув по ней мышью;
  •  в Инспекторе Объектов найдите свойство BorderIcons и, щелкнув по нему мышью, раскройте список его вложенных свойств;
  •  установите для вложенных свойств biSystemMenu и biMinimize значения True (присутствуют), а остальным – False (отсутствуют), согласно таблице, приведённой ниже;

 

Вложенные свойства Borderlcons

Описание

Значение

biSystemMenu

Кнопки системного меню и закрытия окна

True

biMinimize

Кнопка свёртывания окна

True

biMaximize

Кнопка развертывания окна

False

bihelp

Кнопка вызова помощи

False

  •  для свойства BorderStyle экранной формы из раскрывающе-гося списка выберите значение bsSingle (Рамке окна запре-щено изменять свои размеры);

Примечание. Эффект изменения этих свойств можно увидеть только  после запуска приложения.

  •  поместите на форму компонент Label со страницы Standard Палитры Компонентов. Задайте значение 00:00:00 его свойству Caption. Цвет метки (свойство Color) и её размеры выберете по желанию;
  •  в свойстве Font для компонента Label выберете имя шрифта, его размер, цвет и стиль начертания, которые Вы предпочитаете для индикации времени;
  •  поместите на форму компонент Timer со страницы System Палитры Компонентов;
  •  свойству Interval объекта Timer1 в Инспекторе Объектов присвойте значение 1000, таким образом будет задан период отсчета, равный одной секунде;
  •  дважды щелкните мышью в поле значения события OnTimer (закладка Events Инспектора Объектов для таймера) или на самом объекте Timer1, тем самым задав команду Delphi сформировать заготовку процедуры программного кода для обработки этого события в файле программного модуля;
  •  между строками ключевых слов Begin   end вставьте следующий текст: Label1.Caption:=TimeToStr(Time);

Примечание. Функция TimeToStr преобразует значение текущего времени встроенных системных часов компьютера в строку и присваивает это значение свойству Caption объекта Label1. Таким образом, в ответ на каждое событие OnTimer на экране будет выводиться значение каждой секунды.

  •  нажмите F9. Delphi откомпилирует и запустит приложение на выполнение. Его примерный вид приведён на рис.7.1;

Рис. 7.1. Цифровые часы

  •  обратите внимание на присутствие и вид управляющих кнопок формы: некоторые кнопки стали неактивны. Проверьте, возможно ли изменить размер окна;
  •  налюбовавшись действием часов, покажите их преподавателю и сохраните приложение в отдельной папке.

Организация простейшей мультипликации:

Теперь покажем, как можно использовать компонент Timer для создания простейшей мультипликации.

Задание 2. Разработаем приложение «Демонстрация полёта спутника Земли».

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

  •  откройте новый проект;
  •  переименуйте форму, дав ей название «Демонстрация полета спутника Земли»;
  •  с помощью компонента Image1 поместите на форму картинку с изображением планеты Земля на фоне звёздного неба. Картинку предварительно создайте в графическом редакторе Paint (файл формата .bmp) или возьмите готовую, если такая имеется;
  •  установите размеры компонента Image1 на форме максимально возможными (если требуется, увеличьте размеры самой формы);
  •  с помощью компонента Image2 поместите на форму изображение спутника. Изображение спутника можно создать с помощью утилиты ImageEditor, входящей в состав стандартной поставки Delphi (см. лабораторную работу 3). Напомним, что утилита вызывается через главное меню Delphi: Tools/ ImageEditor. Файл со спутником сохраните в формате *.ico (иконка);
  •  поместите на форму три компонента Button (Кнопка) и задайте их свойствам Caption значения: «Пуск», «Стоп», «Выход». У Вас должно получиться нечто, похожее на Рис. 7.2.

Рис. 7.2. Вид формы «Спутник Земли»

  •  установите на форме компонент Timer и задайте его свойству Interval значение 100 (срабатывание через 0.1 секунды);
  •  щелкнув дважды в поле события OnTimer, впишите программный код закона движения спутника. Ниже приведено описание движения по окружности относительно центра компонента Image1:

{--------------------------- Обработка события таймера -----------------------------}

procedure TForm1.Timer1Timer(Sender: TObject);

begin

 if PUSK then

   begin

{--------------------------- Расчет координат спутника ------------------------------}

     Image2.Left:=Image1.Left+Image1.Width div 2

                  +trunc(cos(Alfa*pi/180)*R);

     Image2.Top :=Image1.Top+Image1.Height div 2

                  -trunc(sin(Alfa*pi/180)*R);

     Alfa:=Alfa+1; // Изменение угла поворота на орбите

   end;

end;

  •  в разделе “Инициализация” задайте начальные значения переменным;

{================= Раздел инициализации ====================}

begin

 PUSK:=false;      // Нет движения спутника

 Alfa:=0;              // Начальный угол поворота на орбите

 R:=200;               // Радиус орбиты

end.

Примечание. Переменные, заданные в этом разделе должны быть описаны глобально: var Аlfa, R:integer; PUSK:boolean.

  •  обработайте событие при нажатии на кнопку «Выход», для чего активизируйте эту кнопку на форме, двойным щелчком откройте Редактор Кода и вставите строку Close;
  •  доработайте приложение самостоятельно таким образом, чтобы при нажатии на кнопку «Пуск» движение начиналось, а при нажатии на кнопку «Стоп» приостанавливалось;
  •  попробуйте усовершенствовать программу, чтобы иметь возможность менять направление движения спутника (по часовой стрелке / против часовой стрелки) и его скорость движения по орбите с помощью дополнительных кнопок управления, помещенных в приложение;
  •  сохраните проект в отдельной папке. Результаты работы покажите преподавателю.

Вопросы

  1.  Что из себя представляет компонент Timer и как им можно воспользоваться в разрабатываемом приложении?
  2.  Перечислите последовательность действий, которая должна быть проделана для того, чтобы компонент Timer начал функционировать в приложении.
  3.  Как изменить период следования событий?
  4.  Как задать последовательность действий, которая должна периодически повторяться через определенный промежуток времени?
  5.  Приведите примеры, в каких случаях, кроме тех которые приведены в данной лабораторной работе, можно воспользоваться компонентом Timer.

Резюме

Компонент Timer обеспечивает приём периодически повторяющихся сообщений от системного таймера компьютера. Таким образом, его можно использовать в приложении, когда требуется генерировать события через заданные промежутки времени, например: смена кадров изображения при создании простейшей мультипликации.  

Основные положения при работе с компонентом Timer:

  •  для свойства Interval  желаемый период следования событий задаётся в миллисекундах от 1 до 65.535;
  •  при значении 1000 включается секундный таймер;
  •  компонент Timer имеет только одно событие: OnTimer (Срабатывание таймера), в обработчик которого следует вписать нужную последова-тельность действий, которую необходимо периодически повторять.

6

Лабораторная работа 7


 

А также другие работы, которые могут Вас заинтересовать

72740. Возможности исследовательской работы в детском объединении художественно-эстетического направления (на примере детского театра моды «Виктория») 89 KB
  Детский театр моды –- форма работы с детьми в дополнительном образовании предполагающая интеграцию декоративно-прикладной художественно-эстетической и театральной деятельности детей. Главным результатом работы в объединении конечным продуктом совместной деятельности является создание коллективной коллекции.
72743. Исторический вечер «России верные сыны» 127.5 KB
  Сценарий составлен таким образом, что его можно проводить как в классе, так и в актовом зале школы как внеклассное или школьное мероприятие, посвященное 200-летию Отечественной войны 1812 года. Форма музыкально-поэтической композиции с элементами театрализации способна увлечь и заинтересовать учеников, проявить свои актёрские и поэтические таланты.
72744. Исследование жизни божьих коровок 40 KB
  1 слайд «Божья коровка, улети на небо, принеси нам хлеба!» - кто из нас не приговаривал так, посадив на палец этого красивого жучка? И крошка, добравшись до кончика пальца, улетала. Куда? Чем она занимается? Сейчас мы постараемся ответить, на эти и другие вопросы о божьей коровке.
72745. Отражение национального характера немцев в немецкой фразеологии 100 KB
  Особенности национального характера немцев. Фразеологизмы отражающие национальные особенности немцев. В связи с этим я выбрала фразеологизмы отражающие особенности национального характера немцев.
72746. Правдивая история о соли 96.5 KB
  Если предположить, что значение соли в жизни человека очень велико и значимо, её исчезновение несёт неминуемую гибель человечеству, то становится понятным, почему соль ценили с древних времен и дорожат ею в наше время, остаются актуальными используемые в речи народные пословицы, поговорки и приметы.
72747. Вторая «новая» жизнь старой шубы 31 KB
  Слово «шуба» пришло к нам из арабского языка (джубба). Шуба – верхняя одежда для защиты от зимних холодов. Впервые, слово «шуба» упоминается в письменных источниках 14 века. Из-за суровых зим на Руси шуба является традиционной одеждой.