Unit1.cpp
上传用户:lhxd_sz
上传日期:2014-10-02
资源大小:38814k
文件大小:3k
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "Unit1.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma resource "*.dfm"
- TForm1 *Form1;
- //---------------------------------------------------------------------------
- __fastcall TForm1::TForm1(TComponent* Owner)
- : TForm(Owner)
- {
- Image4->Width=Image2->Width;
- Image4->Height=Image2->Height;
- Image4X=-1;
- Image4Y=-1;
- CurX=0;CurY=0;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::ImageBackup(int x,int y)
- {
- int ww,hh;
- TRect drc,src;
- Image4X=x;
- Image4Y=y;
- ww=Image4->Width;
- hh=Image4->Height;
- drc=Rect(0,0,ww,hh);
- src=Rect(Image4X,Image4Y,Image4X+ww,Image4Y+hh);
- Image4->Canvas->CopyMode=cmSrcCopy;
- Image4->Canvas->CopyRect(drc,Image1->Canvas,src);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::ImageRestore(void)
- {
- int ww,hh;
- TRect drc,src;
- if((Image4X==-1)||(Image4Y==-1))return;
- ww=Image4->Width;
- hh=Image4->Height;
- drc=Rect(Image4X,Image4Y,Image4X+ww,Image4Y+hh);
- src=Rect(0,0,ww,hh);
- Image1->Canvas->CopyMode=cmSrcCopy;
- Image1->Canvas->CopyRect(drc,Image4->Canvas,src);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::SetMoveBmp(int x,int y)
- {
- TRect drc,src;
- int ww,hh;
- ImageRestore();
- ImageBackup(x,y);
- ww=Image2->Width;
- hh=Image2->Height;
- drc=Rect(x,y,x+ww,y+hh);
- src=Rect(0,0,ww,hh);
- Image1->Canvas->CopyMode=cmSrcAnd;
- Image1->Canvas->CopyRect(drc,Image3->Canvas,src);
- Image1->Canvas->CopyMode=cmSrcPaint;
- Image1->Canvas->CopyRect(drc,Image2->Canvas,src);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::FormActivate(TObject *Sender)
- {
- SetMoveBmp(CurX,CurY);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
- TShiftState Shift)
- {
- if(Key==VK_LEFT)
- {
- if(CurX>=10)CurX-=10;
- SetMoveBmp(CurX,CurY);
- }
- else if(Key==VK_RIGHT)
- {
- if((CurX+Image4->Width)<=Image1->Width)
- CurX+=10;
- SetMoveBmp(CurX,CurY);
- }
- else if(Key==VK_DOWN)
- {
- if((CurY+Image4->Height)<=Image1->Height)
- CurY+=10;
- SetMoveBmp(CurX,CurY);
- }
- else if(Key==VK_UP)
- {
- if(CurY>=10)CurY-=10;
- SetMoveBmp(CurX,CurY);
- }
- else{}
- }
- //---------------------------------------------------------------------------