2010-03-02 2 views
0

dll에서 생성 된 컨트롤에 ParentWindow를 할당하려고합니다. 컨트롤은 편집기이므로 텍스트 파일을 처리해야하지만이 컨트롤에는 ParentWindow가 필요합니다.DLL의 ParentWindow

dll에서이 컨트롤을 만드는 경우이 문제를 어떻게 해결할 수 있습니까? 나는 또한 다음 DLL 컨트롤 내부의 TForm을 (아마도이 ​​표시되지 않음)를 만들고 형태

답변

0

델파이 5를 사용하고

"하지 마라".

첫 번째 질문은 "왜 DLL에서 컨트롤을 만들 필요가 있다고 생각합니까?"입니다. 왜 코드로 작성하거나 EXE에 컨트롤 자체를 포함시키는 것이 좋을까요?

둘째, 컨트롤을 별도의 이진 파일에 추가하려고하지만 패키지에 추가하려는 경우입니다. 패키지는 내보내기 컨트롤을 쉽고 간단하게 만들 수 있도록 특별히 설계되었습니다.

+0

좋은 답변이지만, 인수로 내 양식 핸들을 dl로 보내겠다고 결정했습니다 – pythoniso

+1

그렇다면 해결책을 제시하고 그로 인해 다른 사람들이 비슷한 문제를 겪는 데 도움이되는 이유는 무엇입니까? 하루가 지나면 자신의 anser를 받아 들일 수도 있습니다. – jpfollenius

0

이것은 일반적인 질문을하고, 정답에 추가

+1

개인적으로 나는 그것이 바보 같은 대답이라고 생각합니다. scintilla 유형의 컨트롤과 같은 것을 사용하고 싶다면 어떻게해야할까요? 외부 .dll이므로 .exe에 포함시킬 수 없습니다. .obj 파일로 포함시킬 수는 있지만 원래 src이 있다고 가정합니다. Mozilla embeddable 컨트롤은 어떻습니까? 타사 DLL에서 생성 된 항목을 Delphi 양식에 부모로 사용할 수없는 이유는 무엇입니까? 패키지는 모든 수출 통제의 끝이 아닙니다. 나는 과거에는 패키지를 사용했고 절대적으로 필요한 경우가 아니라면 패키지를 사용하지 않을 것입니다. –

+0

글쎄, downvoting 그것은 기술적으로 정확하고, 대부분의 시간, 델파이 컨트롤을 DLL에 넣는 것은/wrong/할일이라는 점을 감안할 때 약간은 보인다. –

+0

델파이 애플리케이션을 하나의 메인 쉘 애플리케이션과 다수의 개별 확장 패키지로 분할하는 주제에 대해 매우 흥미롭게 읽습니다. 제가 읽을 수있는 주제에 대한 좋은 요약을 제안 해 주시겠습니까? –

0

어딘가에서 부모 창을 가져와야합니다! 일반적으로 DLL을로드하고 호출하는 호스트 응용 프로그램은 창 핸들을 제공합니다. DLL이 응용 프로그램에 대한 사용자 지정 컨트롤을 제공하는 것처럼 보이므로 응용 프로그램에서 부모 창 핸들을 제공해야합니다.

또한 일반적으로 전체 응용 프로그램에 대한 창 핸들이 필요합니다.이 핸들은 DLL에서 다른 작업을 수행하기 전에 Application.Handle로 설정합니다.

0

답장을 보내 주시면 이미 해결되었습니다 (첫 번째 답변 전 몇 분 전).

먼저, 내가 왜 포함시키지 않는지 설명해야합니다. 그 이유는 costumer가 저에게 그렇게 요구하기 때문입니다.

솔루션 인수로 내 DLL에 내 양식 핸들을 보낼 수있다, 그런 식으로 테스트 후, 난, 오류 ...

만 인수로 HWND을받을하기 위해, 내 절차의 프로토 타입을 modificate 없어 내 컨트롤의 ParentWindow 소품 (메모리에 생성). 그게 전부입니다.

+0

Nick, 앱,하지만 아시다시피, costumers는 항상 requeriments를 변경합니다. Ryan, 귀하의 요지 역시 정확합니다. 다음에 나는 처음에 요청서를 요청할 것입니다. 더 맛있어,이 해결책이다, 나는 비슷한 문제를 가진 다른 사람들을 생각하지 않는다. 덕분에 . – pythoniso