Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:2004 ИС (Илюшечкин) / ВМИП / Labs / Example(Animated Canvas With Bitmap) / Unit1
.pas unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure draw(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Airplian: TBitmap;
srRect,myRect:Trect;
a:array[1..201,1..85] of Tcolor;
P : PByteArray;
x,y : Integer;
BitMap : TBitMap;
implementation
{$R *.dfm}
procedure TForm1.Draw(Sender: TObject); //прорисовка изображения
begin
Form1.Canvas.Brush.Color:=clBlue;
Form1.Canvas.FloodFill(100,400,clBlue,fsborder);
Airplian:=Tbitmap.Create;
myRect := Rect(490,0,691,85);//задание координат прямоугольника в который загружается изображение
srRect:=rect(0,0,201,85); //собственно размер изображения
Airplian.LoadFromFile('C:\Program Files\delphi\Projects\Example(Animated Canvas With Bitmap)\mig2.bmp');//загрузка изображения
Form1.Canvas.BrushCopy(MyRect, Airplian, srRect, clblue);//копирование изображения на канву с заливкой фона изображения синим цветом
end;
procedure TForm1.Button1Click(Sender: TObject);//осуществление движения
var
i,s,c:integer;
begin
for i:=1 to 690 do
begin
myRect := Rect(490-i,0,691-i,85);
form1.Canvas.BrushCopy(MyRect, Airplian, srRect, clblue);
end;
{
i:=0 ;
for c:=1 to 201 do
for s:= 1 to 85 do
begin
a[c,s]:=form1.Canvas.Pixels[487+c,-1+S];
end;
Form1.Canvas.Brush.Color:=clRed;
Form1.Canvas.FloodFill(100,400,clRed,fsborder);
for c:=1 to 201 do
for s:= 1 to 85 do
begin
if a[c,s]<>clBlue then
form1.Canvas.Pixels[c,s]:=a[c,s];
end;
BitMap := TBitMap.create;
try
// On Windows replace MyBitmap.png with a full pathname such as
// C:\Program Files\Common Files\Borland Shared\Images\Splash\256color\factory.bmp
BitMap.LoadFromFile('C:\Program Files\delphi\Projects\Example(Animated Canvas With Bitmap)\mig2.bmp');
for y := 0 to BitMap.Height -1 do
begin
P := BitMap.ScanLine[y];
for x := 201 to BitMap.Width -1 do
P[x] := y;
end;
//Form1.Canvas.Brush.Color:=clRed;
//Form1.Canvas.FloodFill(100,400,clRed,fsborder);
for y := 0 to BitMap.Height -1 do
for x := 201 to BitMap.Width -1 do
form1.Canvas.Pixels[p[y],p[x]]:=clRed;;
//form1.Canvas.Draw(100,100,BitMap)
finally
BitMap.Free;
end; }
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure draw(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Airplian: TBitmap;
srRect,myRect:Trect;
a:array[1..201,1..85] of Tcolor;
P : PByteArray;
x,y : Integer;
BitMap : TBitMap;
implementation
{$R *.dfm}
procedure TForm1.Draw(Sender: TObject); //прорисовка изображения
begin
Form1.Canvas.Brush.Color:=clBlue;
Form1.Canvas.FloodFill(100,400,clBlue,fsborder);
Airplian:=Tbitmap.Create;
myRect := Rect(490,0,691,85);//задание координат прямоугольника в который загружается изображение
srRect:=rect(0,0,201,85); //собственно размер изображения
Airplian.LoadFromFile('C:\Program Files\delphi\Projects\Example(Animated Canvas With Bitmap)\mig2.bmp');//загрузка изображения
Form1.Canvas.BrushCopy(MyRect, Airplian, srRect, clblue);//копирование изображения на канву с заливкой фона изображения синим цветом
end;
procedure TForm1.Button1Click(Sender: TObject);//осуществление движения
var
i,s,c:integer;
begin
for i:=1 to 690 do
begin
myRect := Rect(490-i,0,691-i,85);
form1.Canvas.BrushCopy(MyRect, Airplian, srRect, clblue);
end;
{
i:=0 ;
for c:=1 to 201 do
for s:= 1 to 85 do
begin
a[c,s]:=form1.Canvas.Pixels[487+c,-1+S];
end;
Form1.Canvas.Brush.Color:=clRed;
Form1.Canvas.FloodFill(100,400,clRed,fsborder);
for c:=1 to 201 do
for s:= 1 to 85 do
begin
if a[c,s]<>clBlue then
form1.Canvas.Pixels[c,s]:=a[c,s];
end;
BitMap := TBitMap.create;
try
// On Windows replace MyBitmap.png with a full pathname such as
// C:\Program Files\Common Files\Borland Shared\Images\Splash\256color\factory.bmp
BitMap.LoadFromFile('C:\Program Files\delphi\Projects\Example(Animated Canvas With Bitmap)\mig2.bmp');
for y := 0 to BitMap.Height -1 do
begin
P := BitMap.ScanLine[y];
for x := 201 to BitMap.Width -1 do
P[x] := y;
end;
//Form1.Canvas.Brush.Color:=clRed;
//Form1.Canvas.FloodFill(100,400,clRed,fsborder);
for y := 0 to BitMap.Height -1 do
for x := 201 to BitMap.Width -1 do
form1.Canvas.Pixels[p[y],p[x]]:=clRed;;
//form1.Canvas.Draw(100,100,BitMap)
finally
BitMap.Free;
end; }
end;
end.
Соседние файлы в папке Example(Animated Canvas With Bitmap)