델파이 ReleaseCapture SetCapture GetCapture 컴포넌트 이동
델파이 ReleaseCapture SetCapture GetCapture 컴포넌트 이동 ReleaseCapture, SetCapture, GetCapture 메소드들은 마우스 이벤트를 헨들링하기 위해 사용하는데요., 설명하자면, 평상시에는 마우스포인트가 움직일때, 그 포인트 밑에 있는 컨트롤들이 메시지를 받아서 처리하게 되는데, SetCapture 로 특정컨트롤을 지정하면, 마우스의 메시지가(클릭,이동등등..) 그 컨트롤에 보내지게 됩니다. 즉, 마우스 포인터가 컨트롤의 Front에 존재하지 않아도 컨트롤은 메시지를 받아 특정한 임무를 할 수 있죠.., 많이 쓰이는 곳은 드래그 하여 영역을 지정하고 싶을때, 또는 마우스 드래그등을 할 때 등.. 런타임 컨트롤 마우스 이동등의...기능들... GetCapt..
2021. 8. 22.
델파이 마우스 아래의 윈도우 핸들 구하기
델파이 마우스 아래의 윈도우 핸들 구하기 // 아래처럼 타이머를 사용하지 않고 마우스 후킹을 사용하면 좀더 간결한 프로그램을 만들 수 있습니다 // SetWindowsHookEx(WH_MOUSE,...) 를 찾아보세요 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private..
2021. 8. 15.
델파이 마우스 위치의 컨트롤
델파이 마우스 위치의 컨트롤 // 마우스 포인터 위치의 콘트롤(콤포넌트)의 이름을 폼의 Caption에 // 출력하는 예로 아래의 Label1, Edit1, Memo1, Button1 등은 임의로 // 올려놓으시고 테스트 해보세요 // Panel 안에 있는 콘트롤도 구분할 수 있습니다 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Memo1: TMemo; Button1: TButton; private { Private declarations } proce..
2021. 8. 14.
델파이 WM_USER 메시지
델파이 WM_USER 메시지 윈도우 시스템은, 메시지구동 시스템이죠. 모든 이벤트는 메세지의 발생에 의해서 처리됩니다. 리스트박스 윈도우, 콤보박스윈도우등 모든 이런 각각의 윈도우들은 내부적 메시지처리에의해 원하는 동작을 하게 되는데, 이런 메시지외에 사용자 정의 메시지가 필요할때가 많죠. 예를들어, 콤보에 값이 변경될때, 부모에게 뿐 아니라, 다른곳에도 알려줄 필요가 있거나 할때요. 그러면, 메시지의 값을 아무렇게나 정의해서 사용할수 없죠. #define WM_MY_TEST 100 처럼, 이런식으로 선언한다면, 이미 100이라는 값은 시스템이 내부적으로 예약해서 사용하는 메시지 상수일 수가 있습니다. 그래서, 사용자가 사용해도 되는 구역을 만들어뒀는데 그게 0x400 값부터 , 0x7FFF 까지 입..
2021. 8. 10.
Delphi 간단하게 키보드이벤트 발생하기
Delphi 간단하게 키보드이벤트 발생하기 윈도우API를 이용하여 키보드를 간단하게 제어해 보겠습니다. Keybd_Event(Ord('K'), MapVirtualKey(Ord('K'), 0), 0, 0); Keybd_Event(VK_ESCAPE, MapVirtualKey(VK_ESCAPE), 0), 0, 0); //첫번째 파라미터 : 키보드의 가상 키코드 //두번째 파라미터 : 키보드의 하드웨어 스캔코드 //세번째 파라미터 : 키보드의 상태제어 //참조 https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-keybd_event 키보드 클릭 Keybd_Event(VK_ESCAPE, MapVirtualKey(VK_ESCAPE), 0), ..
2021. 7. 26.