写以下三个事件就可以。我已经试过了
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
tp=ClientToScreen(TPoint(X,Y));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
TPoint p;
p=ClientToScreen(TPoint(X,Y));
Image1->Top+=(p.y-tp.y);
Image1->Left+=(p.x-tp.x);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if(Shift.Contains(ssLeft))
{
TPoint p;
p=ClientToScreen(TPoint(X,Y));
Image1->Top+=(p.y-tp.y);
Image1->Left+=(p.x-tp.x);
}
}
另外还要申明一个全局变量 TPoint tp;