본문 바로가기

Delphi Tip243

델파이 윈도우 메세지 받는 방법 델파이 윈도우 메세지 받는 방법 - 보내는 통신규약은 아래와 같다고 가정. SendMessage(FindWindow(nil, 'frmDebug'), WM_USER+123, 0, lParam(LongInt(메세지))); 혹은 PostMessage 1. TApplicationEvents 이용 2. 폼에디터에 TApplicationEvents 를 하나 박아넣음 3. 박아넣은 TApplicationEvents 의 OnMessage 함수를 만든다 아래와 같은 모양으로. procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin if Msg.message=WM_USER+123 then begin Memo1.Lines.. 2021. 8. 11.
델파이 WM_USER 메시지 델파이 WM_USER 메시지 윈도우 시스템은, 메시지구동 시스템이죠. 모든 이벤트는 메세지의 발생에 의해서 처리됩니다. 리스트박스 윈도우, 콤보박스윈도우등 모든 이런 각각의 윈도우들은 내부적 메시지처리에의해 원하는 동작을 하게 되는데, 이런 메시지외에 사용자 정의 메시지가 필요할때가 많죠. 예를들어, 콤보에 값이 변경될때, 부모에게 뿐 아니라, 다른곳에도 알려줄 필요가 있거나 할때요. ​ 그러면, 메시지의 값을 아무렇게나 정의해서 사용할수 없죠. #define WM_MY_TEST 100 처럼, 이런식으로 선언한다면, 이미 100이라는 값은 시스템이 내부적으로 예약해서 사용하는 메시지 상수일 수가 있습니다. 그래서, 사용자가 사용해도 되는 구역을 만들어뒀는데 그게 0x400 값부터 , 0x7FFF 까지 입.. 2021. 8. 10.
델파이 윈도우 폼에서 특정 부분 투명 델파이 윈도우 폼에서 특정 부분 투명 특정 폼의 내부가 투명하게 보이도록 하는 기능을 보여줍니다. 이 기능은 폼의 TransparencyKey 속성을 이용해 구현합니다. 간단한 캡처 프로그램을 만들다가 찾은 기능을 소개해볼까 합니다. 폼 안의 영역을 투명하게 해서 아래에 있는 UI가 보이도록 하는 기능입니다. 폼에 구멍을 뚫자 다음과 같은 작업을 해 준다 : 1. 폼에 Panel 개체를 배치하고, 배경색을 붉은 색으로 준다. (BackColor 속성을 Red로 설정한다.) 2. 폼의 TransparencyKey 속성을 Red로 준다. 투명화된 부분을 클릭하면, 클릭에 대한 이벤트로 현재 폼의 아래에 있는 윈도우가 받게 된다는 것을 알 수 있다. 2021. 8. 9.