Вид формы приложения при веден на рис. 1.36, пример мультика (картинка, которая нахо дится в BMP-файле) — на рис. 1.37.

Рис. 1.36. Форма программы Мультипликация Delphi

Рис. 1.37. Пример "мультика" — содержимое ВМР-файла

implementation ($R *.DFM} const
FILMFILE = 'delphi.bmp1; // фильм - BMP-файл
N_KADR=12; // кадров в фильме (для данного файла)
var
Film: TBitMap; // фильм — все кадры
WKadr,HKadr: integer; // ширина и высота кадра
CKadr: integer; // номер текущего кадра
RectKadr: TRect; // положение и размер кадра в фильме
RectScr : Trect; // координаты и размер области
// отображения фильма
procedure TForml.FormCreate(Sender: TObject);
begin
Film := TBitMap.Create; // создать объект типа TBitMap
Film.LoadFromFile(FILMFILE); // загрузить "фильм" из файла
WKadr := Round(Film.Width/N_Kadr);
HKadr := Film.Height; RectScr := Bounds(10,10,WKadr,HKadr); Ckadr:=0; Timerl.Interval := 150; // период обновления кадров — 0.15 сек
Timer1.Enabled:=True; // запустить таймер
end;// обработка сигнала от таймера
procedure TForml.TimerlTimer(Sender: TObject);
begin
// определим положение текущего кадра в фильме
RectKadr:=Bounds(WKadr*CKadr,0,WKadr,HKadr); // вывод кадра из фильма
Forml.Canvas.CopyRect(RectScr,Film.Canvas,RectKadr); // подготовимся к выводу следующего кадра
CKadr := CKadr+1;
if CKadr = N_KADR
then CKadr-.=0;
end;
end.