КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Порядок выполнения
End. Begin Begin Begin Var Const Implementation Var Public Private Type Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; TForm1 = class(TForm) Timer1: TTimer; procedure FormActivate(Sender: TObject); procedure Timer1Timer(Sender: TObject); { Private declarations } { Public declarations } end; Form1l: TForm1; ($R *.DFM} FILMFILE = 'film2.bmp'; // фильм — bmp-файл N_KADR=12; // кадров в фильме (для данного файла) Film: TBitMap; // фильм — все кадры WKadr,HKadr: integer; // ширина и высота кадра CKadr: integer; // номер текущего кадра RectKadr: TRect; // положение и размер кадра в фильме Rect1: Trect; // координаты и размер области отображения фильма procedure TForm1.FormActivate(Sender: TObject); Film:= TBitMap.Create; Film.LoadFromFile(FILMFILE); WKadr:= Round(Film.Width/N_Kadr); HKadr:= Film.Height; Rect1:= Bounds(10,10,WKadr,HKadr); Ckadr:=0; Form1.Timerl.Interval:= 150; // период обновления кадров — 0.15 с Form1.Timerl.Enabled:=True; // запустить таймер end; // отрисовка кадра procedure DrawKadr; // определим положение текущего кадра в фильме RectKadr:=Bounds(WKadr*CKadr,0,WKadr,HKadr); // вывод кадра из фильма Form1.Canvas.CopyRect(Rect1,Film*.Canvas,RectKadr); // подготовимся к выводу следующего кадра CKadr:= CKadr+1; if CKadr = N_KADR then CKadr:=0;: end; // обработка сигнала от таймера procedure TForm1.Timer1Timer(Sender: TObject); DrawKadr; end; Программа состоит из трех процедур. Процедура TForm1. FormActivate создает объект Film и загружает в него фильм — BMP-файл, в котором находятся кадры фильма. Затем, используя информацию о размере загруженного битового образа, процедура устанавливает значения характеристик кадра: высоту и ширину. После этого создается объект Kadr (типа TBitMap), предназначенный для хранения текущего кадра. Следует обратить внимание, что после создания объекта Kadr принудительно устанавливаются значения свойств width и Height. Если этого не сделать, то созданный объект будет существовать, однако память для хранения битового образа не будет выделена. В конце своей работы процедура TForml. FormActivate устанавливает номер текущего кадра и запускает таймер. Основную работу в программе выполняет процедура DrawKadr, которая выделяет из фильма очередной кадр и выводит его в форму. Выделение кадра и его отрисовку путем копирования фрагмента картинки с одной поверхности на другую выполняет метод copyRect (рис. 10.21), которому в качестве параметров передаются координаты области, куда нужно копировать, поверхность и положение области, откуда нужно копировать. Положение фрагмента в фильме, т. е. координата х левого верхнего угла, определяется умножением ширины кадра на номер текущего кадра. Запускает процедуру DrawKadr процедура TForm1.Timer1Timer, обрабатывающая событие OnTiner.
Форма отчёта: Отчет выполняется в тетрадях по практическим работам в письменном виде. Программа отлаживается в IDE Delphi и в виде файлов копируется на сетевой диск.
Содержание отчета: 19. Тема работы. 20. Цель работы. По каждому из заданий: 21. Условие задачи. 22. Постановка задачи. 23. Текст программного кода на языке OBJECT PASCAL. 24. Результаты расчетов (входные и выходные данные).
Система оценки: двухбалльная.
Контрольные вопросы
Список использованной литературы
10. Голицина О.Л., Попов И.И. Основы алгоритмизации и программирования: Учебное пособие. - М.: Форум: Инфра-М, 2002. 11. Фленов М.Е. Библия Delphi. - 3-е изд. Перераб. И доп. - СПб.: БХВ-Петербург, 2011.
Дата добавления: 2014-11-16; Просмотров: 374; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |