?? unit1.cpp
字號:
//---------------------------------------------------------------------------
#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{}
}
//---------------------------------------------------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -