안녕하세요...
잘 해결이 안되서 올립니다..
제가 하려고 하는건요...
메인 프로그램으로 실행파일이 있습니다 이 실행이 하나의 플러그인(작은 프로그램을 실행합니다.)
메인 프로그램에서 여러개의 서브 프로그램을 뛰우기 위해서 그렇게 합니다..
제가 하려고 하는건 서브 프로그램에서 같이 쓰는 화면을 만들어서 서브프로그램이 하나의 DLL로부터 객체를 로드해서 사용할수 있게 하려고 합니다.
즉
메인(EXE) --- > 서브 프로그램 뛰움(DLL)
|
---------> 공통으로 사용하는 Form (DLL로 메인이 안보이게 뛰움)
위에서 처럼 해 놓고 서브 프로그그램(DLL )들이 공통으로 쓰는 form을 객체로 만들어어서 쓰려고합니다..
근대 공콩 DLL에 있는 form을 서브프로그램 DLL로 붙이려고 하는데 안되는군요.
실제로 공통 dll 의 form을 서브 프로그램에 있는 판널을 parent로 강제로 넣었는데 실제로 들어간것 같은데 화면에 그려지질 않아요.
frmClass := TfrmClass.Create(nil);
Windows.SetParent(frmclass.Handle, R_Handle); //실제 도킹
frmClass.Show;
R_Handle -> 이놈의 핸들이 서브 프로그램의 핸들입니다.
frmClss -> 이폼이 공통 폼이구요
위에 같이 하면 되기는 하는데 이놈이 parent에 붙었는데도 컨트롤들이 제대로 동작하지 않습니다.
일반적인 사항은 게시판에서 타락천사님이 올리신 글을 참조하시는것이
나을듯 합니다.
MDI로 검색해보세요
그리고 Setparent API쓰셨네요 이거 저도 98이전에는 많이 사용했는데
지금은 문제땜시 안써요(뭐가 문제인지 기억이 안남 대표적으로
Setparent로 된폼이 Active되어있는 상태에서 알트탭 으로 어플 확인하면
나타나지 않음)
델파이로 짠거이라면 BPL도 추천입니다.
물론 버젼마다 호환은 안되지만 쩝(하이버젼 호환은 해줘야 할텐데 이궁)