1. Создать новый проект.
2. Скопировать в папку, где будет сохранен создаваемый проект, файлы factory.bmp и aplane.bmp .
3. Установить на форме компонент Image и таймер .
Примечание : Компонент Image используется для вывода фона, а компонент Timer — для организации задержки между циклами удаления и вывода на новом месте изображения самолета.
4. Объявить глобальные переменные:
Back, bitmap, Buf : TBitMap; // фон, картинка, буфер
// область фона, которая должна быть восстановлена из буфера
BackRet : TRect;
//область буфера, которая используется для восстановления фона
BufRet: Trect;
х,у: Integer; // текущее положение картинки
W,H: Integer; // размеры картинки
5. Для формы выбрать событие OnActivate и ввести код:
// создать три объекта — битовых образа
Back := TBitmap.Create; // фон
bitmap := TBitmap.Create; // картинка
Buf := TBitmap.Create; // буфер
// загрузить и вывести фон
Back.LoadFromFile('factory.bmp');
Form1.Image1.Canvas.Draw(0,0,Back);
// загрузить картинку, которая будет двигаться
bitmap.LoadFromFile('aplane.bmp');
bitmap.Transparent := True; // определим "прозрачный" цвет
bitmap.TransParentColor := bitmap.canvas.pixels[1,1];
// создать буфер для сохранения копии области фона,
// на которую накладывается картинка
W:= bitmap.Width; H:= bitmap.Height;
Buf.Width:= W; Buf.Height:=H;
Buf.Palette:=Back.Palette;
// Чтобы обеспечить соответствие палитр
Buf.Canvas.CopyMode:=cmSrcCopy;
// определим область буфера, которая будет использоваться
// для восстановления фона
BufRet:=Bounds(0,0,W,H);
// начальное положение картинки
х := -W; у := 20;
// определим сохраняемую область фона // и сохраним ее
BackRet:=Bounds(x,y,W,H);
Buf.Canvas.CopyRect(BufRet,Back.Canvas,BackRct);
6. Для таймера ввести код:
// восстановлением фона (из буфера) удалим рисунок
Form1.image1.canvas.Draw(x,y,Buf);
x:=x+2;
if x>fоrm1.Image1.Width then x:=-W;
// определим сохраняемую область фона
BackRet:=Bounds(x,у,W,H);
// сохраним ее копию
Buf.Canvas.CopyRect(BufRct,Back.Canvas,BackRct);
// выведем рисунок
Form1.image1.canvas.Draw(x,y,bitmap);
7. Для формы выбрать событие OnClose и ввести код:
// освободим память, выделенную для хранения битовых образов
Back.Free;
bitmap.Free;
Buf.Free;
8. Проверить работу приложения.
9. Самостоятельно модернизировать приложение, для того чтобы траектория движения соответствовала синусоиде.
10. Результат показать преподавателю.