23372

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

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

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

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

Русский

2013-08-04

68.5 KB

31 чел.

Лабораторная работа 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


 

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

31113. Сущность и главные тенденции мировой экономики 112.5 KB
  Россия на мировом рынке выступала прежде всего как экспортер зерна и другой сельскохозяйственной продукции а также древесины в Западную Европу и поставщик готовых изделий в соседние азиатские страны а также как импортер западноевропейских готовых изделий материалов и полуфабрикатов. Затем процесс перемещения экономических ресурсов стал более комплексным: капитал предпринимательские способности и технологию стали не только импортировать но и экспортировать среднеразвитые страны включая Россию а в экспорте рабочей силы активное участие...
31114. Мировая валютная система 154.5 KB
  Манипулирование валютным курсом путем девальвации или ревальвации валюты изменение учетной процентной ставки проведение инфляционной или дефляционной политики для регулирования движения товаров услуг и капитала использование международных займов и кредитов и наконец реструктуризация внешней задолженности все это позволяло поддерживать платежные балансы в известной степени временно уравновешенными и отодвигать погашение отрицательного сальдо за счет резервов золота на неопределенное время например периодически продлевая сроки...
31115. Макроэкономическое равновесие. Модель совокупности спроса и совокупного предложения 398.4 KB
  Рыночная система будет находиться в состоянии равновесия если при действующем уровне цен в экономике величина предполагаемого объема производства в экономике равна величине совокупного спроса. Пересечение кривых совокупного спроса и совокупного предложения таким образом определит равновесный реальный объем внутреннего производства и равновесный уровень цен в экономике. Макроэкономическое равновесие будет достигаться в точке Е при следующих его параметрах: РE равновесный уровень цен в экономике; QE равновесный объем производства в...
31116. Экономический выбор, экономические отношения. Граница производственных возможностей 278.68 KB
  Производственные возможности экономической системы ограничены редкостью применяемых ресурсов которая по мере развития общества не только сохраняется но и возрастает. Таким образом основной проблемой эффективного функционирования экономической системы является проблема выбора. Проблема выбора находит отражение в трех основных вопросах: Что производить ⇒ какие из возможных товаров и услуг должны производиться в данной экономической системе в определенный период времени Как производить ⇒ при какой комбинации производственных ресурсов с...
31117. Основы рыночной экономики 41.78 KB
  Они же являются собственниками факторов производства. Его основные признаки: 1 экономическая свобода участников производственного процесса 2 наличие конкуренции как среди продавцов так и среди покупателей 3 максимизация частной выгоды дохода прибыли как цель экономической деятельности и 4 регулирование производства распределения обмена и потребления через механизм цен. Вместе с тем рыночный механизм не идеальный способ регулирования общественного производства. Циклическое развитие производства сопровождается недоиспользованием...
31118. Основы теории потребления 186.96 KB
  Хватит ли денег чтобы осуществить покупку Чтобы ответить на первый вопрос надо выяснить полезность вещи для потребителя чтобы ответить на второй – исследовать цену чтобы решить третий вопрос – определить доход потребителя. Эти три проблемы – полезность цена и доход – и составляют содержание теории поведения потребителя. Для обозначения того удовольствия или удовлетворения которое получают люди от потребления товаров или услуг экономисты используют термин полезность U utility. Кардиналисткая количественная полезность ...
31119. Предпринимательство. Экономическая природа предпринимательства 64.97 KB
  Экономическая природа предпринимательства Предпринимательство одна из важнейших составляющих современной экономики. Основную часть российского предпринимательства составляет малый и средний бизнес. Общественный характер предпринимательства означает не только деятельность участвующих в нем агентов но и наличие в общественном хозяйстве определённых условий позволяющие реализовать присущие предпринимательству функциональные признаки. Совокупность таких...
31120. Фирма в условиях совершенной и несовершенной конкуренции 33.39 KB
  Равновесие фирмы в условиях совершенной и несовершенной конкуренции На любом рынке любой его субъект действует в соответствии с правилами этого рынка. Они в свою очередь зависят от таких факторов как количество участников наличие барьеров входа и выхода с этого рынка степени влиятельности каждого из субъектов на весь рынок их доли рынка. Это и определяет условную принадлежность рынка к какомулибо из видов: полиполия совершенная конкуренция олигополия монополия или монопсония. concurenti от concurrere сталкиваться это тип...