728x90
반응형
델파이 ReleaseCapture SetCapture GetCapture 컴포넌트 이동
ReleaseCapture, SetCapture, GetCapture
메소드들은 마우스 이벤트를 헨들링하기 위해 사용하는데요.,
설명하자면, 평상시에는 마우스포인트가 움직일때,
그 포인트 밑에 있는 컨트롤들이 메시지를 받아서 처리하게 되는데,
SetCapture 로 특정컨트롤을 지정하면,
마우스의 메시지가(클릭,이동등등..) 그 컨트롤에 보내지게 됩니다.
즉, 마우스 포인터가 컨트롤의 Front에 존재하지 않아도
컨트롤은 메시지를 받아 특정한 임무를 할 수 있죠..,
많이 쓰이는 곳은 드래그 하여 영역을 지정하고 싶을때,
또는 마우스 드래그등을 할 때 등..
런타임 컨트롤 마우스 이동등의...기능들...
GetCapture 는 지금 마우스메시지를 받아
처리할 수 있는 컨트롤의 헨들값을 받아오는 거겠고..
ReleaseCapture 는 메시지 제어권을 풀어주겠다는 것
타이틀바가 없는 폼을 이동하기 위해선..
타이틀바를 대신할 컴포넌트(Ex:Label, Panel) 을 올려두고
MouseDown 이벤트에서
ReleaseCapture;
Perform( WM_SYSCOMMAND, $F012, 0 );
폼디자인에서 좀 더 자유로워짐 NC영역 컨트롤하는것보단 쉽고
ReleaseCapture();
TPanel(Sender).Perform(WM_SYSCOMMAND,$F012,0);
728x90
반응형
댓글