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


 

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

29765. Классификация проводящих материалов, особенности тонкоплёночных металлов, проводящие материалы в микроэлектронике 52.44 KB
  Удельное сопротивление алюминия в 16 раза больше удельного сопротивления меди но алюминий в 35 раза легче меди. Недостатками меди являются её подверженность атмосферной коррозии с образованием оксидных и сульфидных плёнок. Например электропроводность меди очень чувствительна к наличию примеси. Содержание в меди 05 никеля олова или алюминия снижает электропроводность меди от 25 до 40.
29766. Классификация полупроводниковых материалов. Собственные и примесные полупроводники. Примеси в полупроводниках 29.49 KB
  Примеси в полупроводниках. Преднамеренное введение примеси называется легированием соответствующие примеси легирующие а полупроводник легированным или примесным. Кроме легирующих примесей существуют случайные или фоновые примеси непреднамеренно вводимые в полупроводник в процессе его производства и обработки. Фоновые примеси как правило ухудшают основные свойства материала и затрудняют управление ими.
29767. Монокристаллический кремний. Его применение, получение и свойства 36.46 KB
  Применение полупроводникового кремния. тонн кремния ежегодно Япония США Германия. Это базовый материал микроэлектроники который потребляет 80 полупроводникового кремния. Более 90 всех солнечных элементов изготавливаются из кристаллического кремния.
29768. Поликристаллический кремний. Применение, свойства, получение 26.53 KB
  Применение поликристаллического кремния Поликристаллический кремний весьма распространённый материал в технологии полупроводниковых приборов и интегральных схем. Возможность получения поликристаллического кремния с электрическим сопротивлением отличающимся на несколько порядков а также простота технологии привели к тому что он используется в технологии интегральных схем с одной стороны в качестве высокоомного материала затворов нагрузочных резисторов а с другой в качестве низкоомного материала межсоединений. Достоинства разводки на основе...
29770. Полупроводниковые соединения типа 29.44 KB
  Лазеры на основе соединений типа используются в телекоммуникационных устройствах волоконнооптических линий связи принтерах устройствах записи и считывания CD и DVD дисках. Свойства соединений типа Соединения типа образуются в результате взаимодействия элементов 3ей А подгруппы периодической системы с элементами 5ой В подгруппы за исключением висмута и таллия. Соединения типа классифицируются по элементу пятой группы т.
29771. Полупроводниковые соединения типа. Свойства соединений типа 23.32 KB
  Применение соединений типа Наиболее широкое применение соединения находят в качестве люминофоров и материалов для фоторезистов. Изготовление фоторезистов на основе соединений типа связано прежде всего с использованием сульфида кадмия селенида кадмия твёрдые растворы на основе . На основе полупроводников типа изготавливают датчики различного диапазона излучения.
29772. Диэлектрические материалы 37.85 KB
  Пассивные это электроизоляторные и конденсаторные материалы. Пассивные неорганические диэлектрики применяемые в электронной технике можно разделить на стекловидные диэлектрики керамику монокристаллические диэлектрические материалы органические и композиционные материалы. Активные диэлектрики это материалы свойствами которых можно управлять в широких пределах с помощью внешних воздействий.
29773. Классификация и особенности материалов электронной техники. Структура материалов. Обозначение кристаллографических плоскостей и направлений кристалла 25.27 KB
  Структура материалов. Классификация и особенности материалов электронной техники. Электрофизические свойства являются одним из основных свойств материалов определяют их применение в электронной технике.