ПРАКТИЧЕСКАЯ РАБОТА: «БИТОВЫЙ ОБРАЗ, ГРАФИКА, ИСПОЛЬЗОВАНИЕ ЗВУКА В LAZARUS»
Битовый образ – это объекты типа TBitMap. Объекты битового образа(картинки) могут быть выведены на поверхность формы или в Image.
Метод LoadFromFile(‘ путь к файлу ’) загружает картинку BMP-формата в битовый образ.
Метод Draw выводит на поверхность формы или иллюстрации содержимое битового образа, например:
Form1.Canvas.Draw(x,y, im1) или Image1.Canvas.Draw(x,y, im2).
Прозрачность фона картинки устанавливаем свойством Transparent:=true перед применением метода Draw. Если в качестве прозрачного надо использовать цвет, отличный от цвета левого нижнего угла картинки, то свойству TransparentСolor следует присвоить символьное значение нужного цвета. Для очистки памяти от битовых образов используют метод FreeImage.
Для использования звука необходимо подключить модуль MMSystem.
Процедура PlaySound проигрывает WAV-звук.
ПРАКТИЧЕСКАЯ РАБОТА.
ЗАДАНИЕ 1.
Создать проект по образцу. Разместить на форме следующие объекты: Ttimer, 3 кнопки BitBtn ( звук, нарисовать фон, вставить цветочки ) и кнопку Button (выход), а также несколько объектов TImage. На форме должны двигаться 2 машинки, при запуске проекта картинки не видимы.
ЗАДАНИЕ 2.
Самостоятельная работа:
1) Продлить дорогу для машин.
2) Нарисовать еще одно небольшое дерево.
3) Вместе с цветочками разместить на большом дереве ещё 2 птички.
ПРОГРАММНЫЙ КОД ПРОЕКТА (для ЗАДАНИЯ 1)
Var
Form1: TForm1;
var x,y,vx,vy: integer;
kor, kor1: TBitmap;
implementation
uses MMSystem;
{$R *.lfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
kor.FreeImage;
kor1.FreeImage;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var t: array [1..4] of Tpoint;
begin
Form1.Canvas.Pen.Color:= clMaroon;
Form1.Canvas.Pen.Width:= 5;
Form1.Canvas.Brush.Color:= $00D0D057;
t[1].x:=-50; t[1].y:=100;
t[4].x:=750; t[4].y:=700;
t[2].x:=200; t[2].y:=0;
t[3].x:=1000; t[3].y:=600;
Form1.Canvas.Polygon (t) ;
Form1.Canvas.Brush.Color:= clyellow;
Form1.Canvas.Brush.Style:=bsCross;
Form1.Canvas.Pen.Color:= clyellow;
Form1.Canvas.Ellipse(600,20,700,120);
Form1.Canvas.Line(600,40,500,50);
Form1.Canvas.Line(580,70,480,120);
Form1.Canvas.Line(600,100,540,170);
Form1.Canvas.Line(620,110,590,250);
Form1.Canvas.Line(670,120,665,270);
Form1.Canvas.Pen.Color:= clGreen;
Form1.Canvas.Brush.Color:= clLime;
Form1.Canvas.Ellipse(800,100,950,350);
Form1.Canvas.Pen.Color:= clMaroon;
Form1.Canvas.Brush.Color:= clMaroon;
Form1.Canvas.FillRect(850,300,900,450);
Form1.Canvas.Pen.Color:= clGreen;
Form1.Canvas.Brush.Color:= clLime;
Form1.Canvas.Ellipse(250,450,350,600);
Form1.Canvas.Pen.Color:= clMaroon;
Form1.Canvas.Brush.Color:= clMaroon;
Form1.Canvas.FillRect(285,550,315,700);
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Image1.Visible:=true;
Image2.Visible:=true;
Image3.Visible:=true;
Image4.Visible:=true;
Image5.Visible:=true;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
PlaySound('3.wav', 0, SND_ASYNC or SND_LOOP);
end;
procedure TForm1.FormCreate(sender:Tobject);
begin
kor:=TBitmap.Create;
kor.loadFromFile('subaru2.bmp');
kor1:=TBitmap.Create;
kor1.loadFromFile('2.bmp');
x:=50;y:=60;vx:=10;vy:=7;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.Canvas.brush.Color:=$00D0D057;
form1.Canvas.FillRect(x,y,x+100,y+70);
form1.Canvas.FillRect(x+100,y+120,x+220,y+190);
x:=x+vx;
y:=y+vy;
kor.Transparent:=true;
kor1.Transparent:=true;
Form1.Canvas.Draw(x,y,kor);
Form1.Canvas.Draw(x+120,y+140,kor1);
end;
end.