|
관련 소스를 드리겠습니다.
저의 경우엔 Label과 Image컴포너트를 옮겼고
CSpinEdit를 이용해서 위치 확인을 했습니다.
참고하세요
bool IsDragging = false;
int OldX, OldY;
void __fastcall TForm1::lbCreditsMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
IsDragging = true;
if (dynamic_cast<TGraphicControl*>(Sender)){
Screen->Cursor = TCursor(crHandPoint);
OldX = X;
OldY = Y;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::lbCreditsMouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
IsDragging = false;
if (dynamic_cast<TGraphicControl*>(Sender)){
Screen->Cursor = TCursor(crDefault);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::lbCreditsMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
DragMouse(Sender, Shift, X, Y, seCreditsX, seCreditsY);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DragMouse(TObject * Sender, TShiftState Shift, int X, int Y, TCSpinEdit* x, TCSpinEdit* y)
{
TGraphicControl* Obj = dynamic_cast<TGraphicControl*>(Sender);
if(IsDragging && Obj)
{
Obj->Left += X - OldX;
Obj->Top += Y - OldY;
x->Text = IntToStr(Obj->Left);
y->Text = IntToStr(Obj->Top);
}
}
|