unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, ExtCtrls, ExtDlgs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
OpenDlg:
TOpenPictureDialog;
Timer1: TTimer;
procedure FormCreate(Sender:
TObject);
procedure BitBtn1Click(Sender: TObject);
procedure
Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
CurrentX,CurrentY:Integer;
WorkImage:TBitmap;
BackImage:TBitmap;
DispImage:TBitmap;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
CurrentX:=0;
CurrentY:=0;
Timer1.Enabled:=false;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if
OpenDlg.Execute then begin
DispImage:=TBitmap.Create;
DispImage.LoadFromFile(OpenDlg.FileName);
WorkImage:=TBitmap.Create;
BackImage:=TBitmap.Create;
WorkImage.Width:=Form1.Width;
workimage.Height:=form1.Height;
backimage.Width:=dispimage.Width;
backimage.Height:=dispimage.Height;
workimage.Canvas.CopyRect(rect(0,0,form1.Width,form1.Height),workimage.Canvas,rect(currentx,currenty,currentx+dispimage.Width,currenty+dispimage.height));
backimage.Canvas.CopyRect(rect(0,0,dispimage.Width,dispimage.Height),workimage.Canvas,rect(currentx,currenty,currentx+dispimage.Width,currenty+dispimage.Height));
workimage.Canvas.CopyRect(rect(currentx,currenty,currentx+dispimage.Width,currenty+dispimage.Height),dispimage.Canvas,rect(0,0,dispimage.Width,dispimage.Height));
form1.Canvas.CopyRect(rect(currentx,currenty,currentx+dispimage.width,currenty+dispimage.height),workimage.Canvas,rect(currentx,currenty,currentx+dispimage.width,currenty+dispimage.height));
timer1.Enabled:=true;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
try
workimage.Canvas.CopyMode:=cmSrcCopy;
workimage.Canvas.CopyRect(rect(currentx,currenty,currentx+dispimage.Width,currenty+dispimage.Height),backimage.Canvas,rect(0,0,dispimage.Width,dispimage.Height));
inc(currentx,-2);
backimage.Canvas.CopyRect(rect(0,0,dispimage.width,dispimage.Height),workimage.Canvas,rect(currentx,currenty,currentx+dispimage.Width,currenty+dispimage.Height));
workimage.Canvas.CopyRect(rect(currentx,currenty,currentx+dispimage.Width,currenty+dispimage.Height),dispimage.canvas,rect(0,0,dispimage.width,dispimage.height));
form1.Canvas.CopyRect(rect(currentx-2,currenty,currentx+dispimage.Width,currenty+dispimage.Height),workimage.Canvas,rect(currentx-2,currenty,currentx+dispimage.Width,currenty+dispimage.Height));
except
Timer1.enabled:=false;
end;
end;
end.