Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[14048] Re:Re:DLL에 포함된 Form에서 MouseEnter, MouseLeave 등이 발생하지 않아요.
civilian [civilian] 1733 읽음    2012-01-11 15:11
한가지 편법으로는 DLL을 호출할 때 실행 어플리케이션의

Application 객체와 Screen 객체를 넘겨주는 방법도 있습니다

DLL 에선 자신의 Application, Screen을 잠시 딴데다 넣어두고

어플리케이션에서 넘긴 Application, Screen 객체를 사용하는 것이지요

젤 좋은 방법은 장성호님 말처럼 런타임 패키지를 쓰는 방법이구요

장성호 님이 쓰신 글 :
: RunTime Package를 쓰세요
:
: Dll 및 Exe를 Compile할때 Project-Option 에서 Run-time Package를 쓰도록 설정해서 Compile해보세요
: 그러면 vclxx.bpl , rtlxx.bpl 등을 exe와 함께 따로 배포해 줘야 하지만
: 위와같은 문제는 해결될 것입니다.
:
: 기억이 가물가물 한데...
: CM_MOUSEENTER , CM_MOUSELEAVE는 대게 
: Application이 Idle상태일때 (메세지큐에 처리할 메세지가 없을때)
: Mouse아래의 Control이 변화하는지 체크해서 인위적으로 CM_MOUSEENTER , CM_MOUSELEAVE 메세지를 던져줍니다.(항상그런것은 아님,vcl 버젼에 따라 틀리기도 하고)
:
: runtime-package를 쓰지 않고
: dll에서 만들어진 Form은 
: exe에 있는 Global객체인 Application과 Screen객체에서 정확히 판단을 할수가 없습니다.
: (TForm은 생성될때 Screen.Forms에 자신을 등록하고 , free될때 Screen.Forms에서 remove함)
:
: ....
:
:
: 그럼....
:
:
:
: 레드수샤 님이 쓰신 글 :
: : 안녕하세요.
: :
: : 초초초보입니다;;;
: :
: : 아래와 같은 문제로 1주일째 뜬눈으로 밤을 지새웁니다 ㅠ_ㅠ
: :
: : -------------
: : DLL에 포함된 Form을 생성하고 화면에 출력하면,
: :
: : 그 화면에 포함된 Edit 에서 CM_MOUSELEAVE, CM_MOUSEENTER 등이 발생하지 않습니다.
: :
: : 물론 같은 Edit 를 별도의 application에 넣고 실행하면,  CM_MOUSELEAVE, CM_MOUSEENTER 이 잘 발생합니다.
: : -------------
: :
: : 이거 어떻게 해야하나요? ㅠ_ㅠ

+ -

관련 글 리스트
14045 DLL에 포함된 Form에서 MouseEnter, MouseLeave 등이 발생하지 않아요. 레드수샤 1726 2012/01/11
14047     Re:DLL에 포함된 Form에서 MouseEnter, MouseLeave 등이 발생하지 않아요. 장성호 2052 2012/01/11
14048         Re:Re:DLL에 포함된 Form에서 MouseEnter, MouseLeave 등이 발생하지 않아요. civilian 1733 2012/01/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.