|
답변감사합니다.
친절한 답변에 감탄을!!
다시 한번 감사드립니다.
[수정]
질문한 겸 혹시 누군가 TImage를 이동하면서 귀찮으시다면
간단한 팁정도..
TImage를 이동하고 싶을때는 패널에 TImage를 올려놓고 TImage의 MouseDown에서 패널을 이동시키면
그냥 TImage가 이동되는 것처럼 됩니다.
뭐 그냥.. 팁일뿐..
장성호 님이 쓰신 글 :
: 런타임때 Control 을 마우스로 클릭해서 옮기는것은?
:
: [방법1]
: 보통 TWinControl은
: MouseDown이벤트에서 아래와 같이 코딩하면 됩니다.
:
: void __fastcall TForm1::Panel1MouseDown(TObject *Sender,
: TMouseButton Button, TShiftState Shift, int X, int Y)
: {
: TWinControl *wCtrl=(TWinControl *)Sender;
: ReleaseCapture();
: SendMessage(wCtrl->Handle,WM_SYSCOMMAND, 0xf012, 0);
: // 또는 wCtrl->Perform(WM_SYSCOMMAND, 0xf012, 0);
: }
: //---------------------------------------------------------------------------
:
:
:
: [방법2]
: 그러나 TImage는 안됩니다.
: 왜냐하면 Handle이 없기 때문입니다.
:
:
: TImage 를 Mouse로 위치를 이동하려면
: MouseDown , MouseMove 이벤트를 이용해야 합니다.
:
: 그냥 마우스 Down때 좌표 기억하고
: Move때 움직인 Delta만큼 TImage의 좌표를 바꿔주면 됩니다.
:
:
: TImage *movImg;
: int DeltaX;
: int DeltaY;
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::Image1MouseDown(TObject *Sender,
: TMouseButton Button, TShiftState Shift, int X, int Y)
: {
: movImg=(TImage *)Sender;
: movImg->BringToFront();
: DeltaX=X;
: DeltaY=Y;
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
: int X, int Y)
: {
: if(Shift.Contains(ssLeft))
: {
: int dx=X-DeltaX;
: int dy=Y-DeltaY;
: if(movImg)
: {
: movImg->Left+=dx;
: movImg->Top+=dy;
: }
: }
: }
: //---------------------------------------------------------------------------
:
: 그럼...
:
:
:
: 수야!╋ 님이 쓰신 글 :
: : 안녕하세요 ^^;;
: :
: : 하도 오랫만이라 생각이 안나네요. 검색을 해봐도 안나오고해서 ㅎ_ㅎ;;
: :
: : TForm 내에 있는 TImage같은 컨트롤들을 TForm 내에서 이동하고자 합니다.
: :
: : 물론 마우스로요.
: :
: : 간단한 명령어였던걸로 기억하는데.. 아시는분 답변좀 부탁드릴께요~
: :
: : 아.. 생각이 안나 ㅠ.ㅠ
|