Q&A

  • 용일님..! 한번만 더 봐주세요...TT
용일님 답변에 감사합니다..



아래는 메인 폼소스구요



implementation

function fast1(ownerapplication: Tapplication): tform2; stdcall; external 'test1.dll';

{$R *.DFM}



procedure Tform2.Button1Click(Sender: TObject);

var



dllform : tform2;

begin

dllform:=fast1(application);

dllform.showmodal;

dllform.ManualDock(panel1);

end;



아래는 DLL 소스입니다.

function fast1(ownerapplication: tapplication): tform1; export; stdcall;

var

form2 : tform1;

begin

coinitialize(nil);

result:=tform1.Create(ownerapplication);

end



그런데 도킹이 되질 않네요.....제가 무얼 잘못했는지요

메인폼의 panel의 docksite 는 True 로 했구요

그리고 메인 폼에서 dllform.show로 하면 나타났다가 폼이 바로 사라져버려서

dllform.showmodal로 했어요 .....

용일님 부탁드립니다.....

언제나 용일님한테 신세만 지네요.....감사해요



최용일 wrote:

> 안녕하세요. 최용일입니다.

>

> 모들폼은 도킹이 안되는 걸로 알고 있는데요... 그리고 DLL의 Application과 메인 프로

>

> 그램의 Application은 서로 다릅니다. 이점 참고하세요.

>

> 이런식으로 바꾸어 보세요...

>

> dll에서 폼을 만드는 함수

> function MakeForm(OwnerApplication: TApplication): TForm1; export; stdcall;

> begin

> CoInitialize(nil);

> Result := TForm1.Create(OwnerApplication);

> end;

>

> 메인폼에서

> var

> dllForm: TForm1;

> begin

> dllForm := MakeForm(Application);

> dllForm.Show;

> dllForm.ManualDock(Panel1);

> end;

>

> ^^ 항상 즐코하세요...

>

> 이병웅 wrote:

> > 언제나 답변해 주셔서 고맙습니다...

> > 아래 소스는 DLL폼 부분을 생성하는 부분입니다.

> > procedure fast1;

> > var

> > form1 : tform1;

> > begin

> > coinitialize(nil);

> > form1:=tform1.Create(application);

> > form1.ShowModal;

> > form1.Free;

> > end;

> >

> > 그리고 main form에서는

> > fast1;

> > 이런식으로 DLL을 불러서 사용하는데요

> > 용일님께서 말씀하신 부분을 어떻게 적용해야 할런지요....

> > 용일님 부탁드립니다. ....꾸벅~

> >

> > 최용일 wrote:

> > > 안녕하세요. 최용일입니다.

> > >

> > > dll에서 폼을 불러온 후 ManualDock메소드를 사용하여 도킹하면 됩니다.

> > >

> > > // DLL에 있는 폼을 불러온 후...

> > > DllForm.Show;

> > > DllForm.ManualDock(Panel1);

> > >

> > > Panel1의 DockSite속성이 True로 되어있어야 하겠죠...

> > >

> > > ^^ 항상 즐코하세요.

> > >

> > > 이병웅 wrote:

> > > > 고수님들 안녕하셔요!

> > > >

> > > > main폼에서 dll로 만든 다른 폼을 불러서

> > > > panel 이나 다른 컴포넌트에 토킹좀 시켜볼려고 하는데

> > > > 어떻게 해야되는지.....도와주세요.....



1  COMMENTS
  • Profile
    최용일 2000.07.04 08:22
    안녕하세요. 최용일입니다.



    생각해 보니 답변을 상당히 경솔하게 한것 같군요...



    DLL과 메인프로그램은 완전히 별개의 것입니다.모들이나 비모들로 폼을 보여주는 것은



    별루 상관이 없겠지만, DLL의 폼을 메인프로그램에 도킹시킬려면 두 개 프로그램의 동기



    화가 필요할 것 같군요. 그냥 도킹시킨다면 아마도 메인 프로그램으로부터 이벤트를



    받지못할것 같군요. DLL의 폼이 도킹될 때 메인프로그램으로부터 완전히 이벤트를 받을



    수 있도록 동기화 시켜주세요. 이건 저의 내공을 초월한거라 코딩은 생략합니다. 죄송.



    ^^ 항상 즐코하세요.



    이병웅 wrote:

    > 용일님 답변에 감사합니다..

    >

    > 아래는 메인 폼소스구요

    >

    > implementation

    > function fast1(ownerapplication: Tapplication): tform2; stdcall; external 'test1.dll';

    > {$R *.DFM}

    >

    > procedure Tform2.Button1Click(Sender: TObject);

    > var

    >

    > dllform : tform2;

    > begin

    > dllform:=fast1(application);

    > dllform.showmodal;

    > dllform.ManualDock(panel1);

    > end;

    >

    > 아래는 DLL 소스입니다.

    > function fast1(ownerapplication: tapplication): tform1; export; stdcall;

    > var

    > form2 : tform1;

    > begin

    > coinitialize(nil);

    > result:=tform1.Create(ownerapplication);

    > end

    >

    > 그런데 도킹이 되질 않네요.....제가 무얼 잘못했는지요

    > 메인폼의 panel의 docksite 는 True 로 했구요

    > 그리고 메인 폼에서 dllform.show로 하면 나타났다가 폼이 바로 사라져버려서

    > dllform.showmodal로 했어요 .....

    > 용일님 부탁드립니다.....

    > 언제나 용일님한테 신세만 지네요.....감사해요

    >

    > 최용일 wrote:

    > > 안녕하세요. 최용일입니다.

    > >

    > > 모들폼은 도킹이 안되는 걸로 알고 있는데요... 그리고 DLL의 Application과 메인 프로

    > >

    > > 그램의 Application은 서로 다릅니다. 이점 참고하세요.

    > >

    > > 이런식으로 바꾸어 보세요...

    > >

    > > dll에서 폼을 만드는 함수

    > > function MakeForm(OwnerApplication: TApplication): TForm1; export; stdcall;

    > > begin

    > > CoInitialize(nil);

    > > Result := TForm1.Create(OwnerApplication);

    > > end;

    > >

    > > 메인폼에서

    > > var

    > > dllForm: TForm1;

    > > begin

    > > dllForm := MakeForm(Application);

    > > dllForm.Show;

    > > dllForm.ManualDock(Panel1);

    > > end;

    > >

    > > ^^ 항상 즐코하세요...

    > >

    > > 이병웅 wrote:

    > > > 언제나 답변해 주셔서 고맙습니다...

    > > > 아래 소스는 DLL폼 부분을 생성하는 부분입니다.

    > > > procedure fast1;

    > > > var

    > > > form1 : tform1;

    > > > begin

    > > > coinitialize(nil);

    > > > form1:=tform1.Create(application);

    > > > form1.ShowModal;

    > > > form1.Free;

    > > > end;

    > > >

    > > > 그리고 main form에서는

    > > > fast1;

    > > > 이런식으로 DLL을 불러서 사용하는데요

    > > > 용일님께서 말씀하신 부분을 어떻게 적용해야 할런지요....

    > > > 용일님 부탁드립니다. ....꾸벅~

    > > >

    > > > 최용일 wrote:

    > > > > 안녕하세요. 최용일입니다.

    > > > >

    > > > > dll에서 폼을 불러온 후 ManualDock메소드를 사용하여 도킹하면 됩니다.

    > > > >

    > > > > // DLL에 있는 폼을 불러온 후...

    > > > > DllForm.Show;

    > > > > DllForm.ManualDock(Panel1);

    > > > >

    > > > > Panel1의 DockSite속성이 True로 되어있어야 하겠죠...

    > > > >

    > > > > ^^ 항상 즐코하세요.

    > > > >

    > > > > 이병웅 wrote:

    > > > > > 고수님들 안녕하셔요!

    > > > > >

    > > > > > main폼에서 dll로 만든 다른 폼을 불러서

    > > > > > panel 이나 다른 컴포넌트에 토킹좀 시켜볼려고 하는데

    > > > > > 어떻게 해야되는지.....도와주세요.....

    >

    • 조규춘
      2000.07.04 06:11
      여기 팁란에 강민주님이 올리신 글이 있었는데.. 안보셨나보군요. http://www.delphi.co.kr/cgi-bin...
    • 조유정
    • 2000.07.04 03:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 허춘
      2000.07.04 08:46
      조유정 wrote: > 부탁입니다. ㅠㅠ > 가상 테이블을 만드는 방법좀 알려 주세요... > 자세하게 알려 주...
    • 문진현
    • 2000.07.04 02:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 어린왕자
      2000.07.06 03:26
      문진현 wrote: > 안녕하세요... > 델 초보의 질문 입니다.. > > DBGrid를 스크롤 할때 발생하는 Event...
    • 빈거울
    • 2000.07.04 02:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 허춘
      2000.07.04 08:53
      빈거울 wrote: > vb로 된 오른쪽 정렬입니다. > 이것을 델파이로 옮겨주세요.... 비베를 잘몰라서 제...
    • 이병웅
    • 2000.07.04 01:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.07.04 08:22
      안녕하세요. 최용일입니다. 생각해 보니 답변을 상당히 경솔하게 한것 같군요... DLL과 메인프로그램...
    • 산적
    • 2000.07.04 01:26
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이상우
      2000.07.04 06:21
      산적 wrote: > 안녕하세요. 델파이 초보의 질문입니다. > 지뢰찾기를 만들려고 하는데, 저는 StringGrid...
    • 산적
      2000.07.05 22:49
      이상우 wrote: > 안녕하세요.... > > 이렇게 해보시죠.. > > > StringGrid의 특정 Cell에 그림 ...
    • jym
      2000.07.04 01:28
      델초보녀 wrote: > string이 꽤 긴게 있는데... > > 어떻게 선언해야 하나요? > var s:string; > 으...
    • 성호종
      2000.07.04 01:55
      김동섭 wrote: 소스를 포함한 답변을 드립니다요~ 디비콤보는 아니지만 콤보박스를 디비그리드에서 활용...
    • 김동섭
      2000.07.04 02:28
      질문에 답해 주셔서 감사합니니다. 제가 원하는 필드에 디비콤보가 들어오나여. 제가 지금 필요한 것...
    • 성호종
      2000.07.07 03:35
      김동섭 wrote: 제가 답변해 드린 source가 그렇게 사용되고 있는 source입니다. 잘 응용해 보세용~ > ...
    • 한상훈
    • 2000.07.03 23:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.07.03 23:29
      안녕하세요. 최용일입니다. MyFunction(변수:형=디폴트값; 변수: 형=디폴트값;...) 위와 같은 식으로...
    • 조규춘
      2000.07.03 22:52
      초보녀 wrote: > 안녕하세요? 델파이 왕초보입니다. > 너무 바보같은 질문일 줄 모르나 > > 폼에 버...
    • 이경문
      2000.07.04 03:34
      실행화일을 실행시킬 때는 WinExec를 사용하면 됩니다. 윈도우 탐색기에서 특정화일을 더블클릭할 때 (예...
    • 깨비
      2001.03.04 01:28
      저는 일단 Twebbrowser에서 해봤네염. 이소스를 수행 하기 위해선 ieConst.pas 와 ieDocHostUIHandler.pas...
    • 최용일
      2000.07.03 22:37
      안녕하세요. 최용일입니다. 어떻게 안된다는 거죠? 에러 메세지가 뭔지를 알아야죠... 저두 자주 쓰...
    • 한 태수
      2000.07.04 05:49
      최 용일님 문제 해결했습니다. 델파이의 bin 디렉토리에서 Rw32Core.dll화일을 제 작업디렉토리로 복사해 ...
    • 류응철
    • 2000.07.03 21:01
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.07.03 22:48
      류응철 wrote: > 일반적으로 다음과 같은 그림을 참고하십시요 여기서 하는 거니.... > http://members.n...
    • 류응철
      2000.07.04 00:42
      감사합니다.. 그런데여... 바탕화면에 단축아이콘은 뜨거든요.. 인스톨 다 하면 그룹박스가 뜨는거여.....
    • 조규춘
      2000.07.04 12:33
      류응철 wrote: > 감사합니다.. 그런데여... 바탕화면에 단축아이콘은 뜨거든요.. > > 인스톨 다 하면 ...
    • 김종석
    • 2000.07.03 20:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      2000.07.03 21:40
      이재식 Wrote : 안녕하세요? 테이블제어를 외부에서 할수 있습니다. 님께서 사용자 정의 dll를 만드셔...
    • 최용일
      2000.07.03 23:48
      안녕하세요. 최용일입니다. 메세지를 보내세요. SendMessage(wnd, WM_PAINT, DC, 0); ^^ 항상 즐...
    • 서영택
    • 2000.07.03 20:34
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      2000.07.03 22:21
      서영택 wrote: > 처음 Web Deploy를 실행면 정상적인데 폼위에 버튼을 올려놓고 실행하면 > 아래와같은 ...
    • 서영택
      2000.07.03 23:50
      최석기 wrote: > 서영택 wrote: > > 처음 Web Deploy를 실행면 정상적인데 폼위에 버튼을 올려놓고 실행...
    • 이경문
      2000.07.04 03:47
      실행이 되지 않는 이유는 여러가지가 있는데, 제가 추측하는 에러는 다음과 같습니다. ocx위치가 c:work라...