Timer1: TTimer;//爆炸定时器
Image1: TImage;//储存爆炸的图片
Image2: TImage;//储存飞行器的图片
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
DeskTopDC:HDC;//桌面窗口的图形设备描述表句柄
stop:boolean;//控制循环的变量
expnum:integer;//爆炸的当前次数
procedure Explode(X:integer;Y:integer);//爆炸函数
procedure shipmove(X:integer;Y:integer);//飞行器函数
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
//保存桌面背景
procedure savebackground(BKCanvas :TCanvas;
sp_w:integer;
sp_h :integer ;
nx:integer;
ny:integer);
var sc:TCanvas;
begin
sc:=TCanvas.Create;
try
sc.Handle:=GetDC(0);
bkcanvas.CopyRect( rect(0,0,sp_w, sp_h), sc,rect(nx, ny, nx+sp_w, ny+sp_h));
ReleaseDC(0, sc.handle);
finally
sc.free;
end;
end;
//透明拷贝图像函数
//静态调用API函数TransparentBlt
procedure tranbit(hdcDest:HDC;
nXOriginDest:integer;
nYOriginDest:integer;
nWidthDest:integer;
hHeightDest:integer;
hdcSrc:HDC;
nXOriginSrc:integer;
nYOriginSrc:integer;
nWidthSrc:integer;
nHeightSrc:integer;
crTransparent:UINT) ;
Var
LibHandle:HWND;//动态连接库句柄
//函数原型定义
DllName:Procedure(hdcDest:HDC;
nXOriginDest:integer;
nYOriginDest:integer;
nWidthDest:integer;
hHeightDest:integer;
hdcSrc:HDC;
nXOriginSrc:integer;
nYOriginSrc:integer;
nWidthSrc:integer;
nHeightSrc:integer;
crTransparent:UINT);Stdcall;
begin
//以下是静态调用dll中函数的例行公事
LibHandle:=LoadLibrary(''''msimg32.dll'''');
if LibHandle<32 then
begin
MessageBox(Form1.Handle,''''Not Found msimg32.dll'''',''''Error'''',0);
Exit;
上一页 [1] [2] [3] [4] [5] 下一页 没有相关教程
|