IT정보공유

[ Delphi ] 드래그 앤 드롭 - 마우스 클릭 -> 이동 -> 마우스 업

알지오™ 2016. 7. 1.

제목이 약간 이상하긴 하다만..

 

어쨌든 써보자.

 

[버튼1] [버튼2] 이렇게 버튼이 폼에 배치되어 있다고 치자.

 

이때 [버튼1] 을  클릭하여 왼쪽 버튼을 떼지않고 드래그 하여

 

[버튼2]에 마우스 포인터를 올려놓은 채로 마우스를 떼자!

 

그럼 [버튼1]의 OnMouseUp 이벤트를 먹을까? 아님 [버튼2]의 이벤트를 먹을까?

 

정답은 [버튼1]의 OnMouseUp 이벤트를 먹는 다는 것이다.

 

하지만..

 

이렇게 하면 드래그 & 드롭의 기능을 구현하는데 있어서 상당히 까다로와 진다..

 

[버튼1]을 드래그하여 [버튼2]로 왔다는것을 알수가 없으니까.

 

(하지만 마우스 오른쪽 버튼을 이용한 드래그는 잘 된다..!! 희한하지?)

 

그래서!!!!

 

왼쪽버튼으로도 할수 있게 하는 아주 간단한 방법이 있다.

 

[버튼1] 클릭시 OnMouseDown 이벤트 프로시져 안에

 

procedure TForm1.버튼1OnMouseDown(sender : Tobject;어쩌구저쩌구 하여튼 프로시져)
begin
  ReleaseCapture ;
 
  //처리해줄것들;
  // :
  //:
end;

 

한줄만 추가해주면..

바로 저 한줄만 추가해주면..

 

[버튼1] 에서 쭈욱 드래그 한 후에

[버튼2] 에서 마우스업을 하게되면

 

[버튼2]의 OnMouseUp 이벤트를 받게된다는 말씀..

 

 

내가 써놓고도 이해가 안되는데 누가 본들 이해하랴 ㅡ.ㅡ;

 

댓글

💲 추천 글