Q&A

  • DLL에서 Application.OnMessage
Form이 포함된 DLL을 만들었습니다. 이 Form은 호출하는 Exe에서든... 이미 열린 Form

에서든 여러개를 Create합니다.

맨처음에 만들어진 Form과 호출 하는 Exe 에서 만드는 Form은

Form.Create(nil);



이미 생성한 Form에서 Create하는 Form은

Form.Create(Self);

이렇게 해서 생성 합니다.



그리고 보여지는 것은

Form.show; 라고 하고요.



그리고 해당 Form에서의 Message를 가로채기 위해

해당 폼마다

1. Active Event 에서는

OldAppMessage := Application.OnMessage;

Application.OnMessage := AppMessage;



2. DeActive 에서는

Application.OnMessage := OldAppMessage;



3. Close 에서는

Application.OnMessage := OldAppMessage;

Action := caFree;



이렇게 해줬습니다.



그런데 이상하게도...

Show; 한 Form은 위에서 Application.OnMessage := AppMessage; 이렇게 지정해준

Message에 가로채지지가 않습니다.

ShowModal; 해서 연 폼은 가로채집니다...

왜 이런 현상이 나타나는 것인지....

항상 어떤 화면에서나 메시지가 가로채지게 해야 하는데 잘 되지 않는군요...

해결 방법을 아시는 분이 계시면... 알려주시면 감사 드리겠습니다.



질문 내용이 너무 난해하게 한것인지 모르겠네요....



0  COMMENTS