http://blog.163.com/yanzi_mylove/blog/static/719299642009988231298/

delphi 动画

2009-10-08 08:02:31| 分类: delphi | 标签: |举报 |字号 订阅

下载LOFTER 我的照片书 |
 
 

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.