23372

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

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

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

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

Русский

2013-08-04

68.5 KB

36 чел.

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


 

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

78151. Образование как социокультурный феномен и движущая сила социально-экономического развития 88.88 KB
  Социокультурные тенденции оказывающее влияние на развитие образования науки культуры. Основные направления модернизации среднего специального и высшего образования. Две основные функции образования в обществе воспроизводство и развитие и соответствующие им модели образования.
78152. Развитие и воспитание личности 55.36 KB
  Структура учебной деятельности: учебнопознавательные мотивы цели задачи и учебные действия. Обучение направлено на развитие личности посредством организации усвоения обучающимися научных знаний и способов деятельности. Воспитательная функция реализуется в формировании у обучающихся ценностных ориентаций убеждений личностных качеств в процессе усвоения социальнокультурного опыта и формировании мотивов учебной деятельности которые во многом определяют ее успешность. Используется в практике профессиональной подготовки и рассчитан на то...
78153. Роль и психологические функции руководителя в системе управления 55.01 KB
  Процесс принятия решений значительно более сложен и опосредован множеством различных обстоятельств и соображений не обязательно связанных с данной группой решения часто принимаются на основе прошлого опыта. Решения принимают непосредственно по групповой деятельности предпринимают постоянные попытки разработки новых и неоднозначных решений проблемы Сфера действий руководителя шире поскольку он представляет малую группу в более широкой социальной системе Сфера деятельности лидера в основном малая группа Однако несмотря на приведенные...
78154. Самосовершенствование личности 53.53 KB
  Самосовершенствование определяется взаимодействием человека с конкретной социальной средой в ходе которого он вырабатывает у себя такие качества которые дают успех в профессиональной деятельности и в жизни вообще. Рубинштейн трактовал жизненный путь не только как движение человека вперед но и движение вверх к высшим более совершенным формам и лучшим проявлениям человеческой сущности завершение жизни достижение не старости упадка и смерти а достижение личностного совершенства. Причем предъявляемые требования должны быть несколько...
78155. Система образования в Республике Беларусь: состояние и пути развития 45.34 KB
  Кодекс Республики Беларусь об образовании как главный законодательный документ в области образования. Позитивные и негативные тенденции и особенности функционирования системы образования на всех уровнях. Направление совершенствования высшего образования в Республике Беларусь.
78156. Социализация личности. Семейное воспитание 52.23 KB
  Признаки и функции коллектива методика его формирования. Признаки развитого коллектива: наличие общественно и личностно значимых целей; включение членов коллектива в разнообразную социальную деятельность; соответствующая организация совместной деятельности; связь коллектива с обществом; наличие положительных традиций и перспектив; атмосфера взаимопомощи доверия и требовательности; развитые критика и самокритика сознательная дисциплина и др. Это результат упорного целенаправленного и длительного труда всего коллектива результат...
78157. Социальная подструктура личности 33.17 KB
  Стадии социализации личности. Полученные в процессе социализации знания приобретенные личностные качества не станут лишь индивидуальным достоянием а станут достоянием общества так как человек не только обогащается опытом но и реализует себя как личность влияя на жизненные обстоятельства и окружающих людей. Механизмы социализации: Имитация механическое повторение воспроизведение наблюдаемых человеком социальных действий без понимания их подлинного смысла.
78158. Эмоции и психические состояния личности 115.54 KB
  Эмоции имеются и у животных но у человека они приобретают особую глубину имеют множество оттенков и сочетаний. Эмоции различают по интенсивности и длительности а также по степени осознанности причины их появления. В связи с этим выделяют: настроение собственно эмоции и аффекты.
78159. Биологическая и психологическая подструктуры личности 129.43 KB
  Механизмы развития и тренировки памяти. Этот образ соотносится с информацией хранящейся в памяти и мотивационными установками человека. информированность индивида об объекте представлений и продолжительность сохранения его образов: представления памяти т. Особенности памяти: память немыслима без других психических процессов так как она запечатляет сохраняет и воспроизводит психические продукты этих процессов когда мы воспринимаем чтото оно запоминается; память это сквозной психический процесс так как присутствует в течение...