Q&A

  • DLL에 들어있는 form을 child로 띄우는 방법좀
안녕 하십니까 !

델파이 초보자로써 이런 곳을 보니 매우 기쁩니다.

당분간은 ROM족 신세를 면치 못하겠지만 언젠가는 정보도 제공해 줄수 있는 날이 오길 ....





MAIN FORM에서 DLL로 SELF(TWindControl)를 넘기고 DLL에서 TForm1.CREATE 에 아규먼트로 주었는데 잘 안되네요!



누가좀 도와 주세요!!!!!

3  COMMENTS
  • Profile
    안치봉 1999.03.10 04:15
    소스는 잘~ 받았습니다.



    소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다).



    procedure TForm1.b1Click(Sender: TObject);

    var

    mi : TMenuItem;

    HInst : THandle;

    fPtr : TFarProc;

    _do : DODO;

    begin

    HInst := LoadLibrary('DLLTEST.dll');



    if HInst <> 0 then

    begin

    @_do := GetProcAddress(HInst, '_do');

    if @_do <> nil then _do(self, application);

    FreeLibrary(HInst);

    end;

    end;



    그리고 DLL 부분에도 잘못된 부분이 있는것 같습니다.

    (아래는 제가 나름대로 테스트할때 쓴 DLL 부분입니다. 이건 잘 되거든요)



    procedure _do(x:TWinControl; y:TApplication); stdcall;

    var

    f: TForm;

    begin

    f := TForm.Create(y);

    f.ShowModal;

    f.free;

    end;



    도움이 되셨는지 모르겠군요^^;

    DLL 에 대해 공부하시려면 델파이의 도움말중 색인에서 DLL 에대해 보시면 많은 도움이 될겁니다~

  • Profile
    신인재 1999.03.10 04:08
    원영준 wrote:

    > 안녕 하십니까 !

    > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다.

    > 당분간은 ROM족 신세를 면치 못하겠지만 언젠가는 정보도 제공해 줄수 있는 날이 오길 ....

    >

    >

    > MAIN FORM에서 DLL로 SELF(TWindControl)를 넘기고 DLL에서 TForm1.CREATE 에 아규먼트로 주었는데 잘 안되네요!

    >

    > 누가좀 도와 주세요!!!!!



    아래에 MDI Child폼을 넣은 DLL의 예제를 올림니다.

    도움이 되시길....

    Main에서 procedure ShowMDIChildForm(MainApp : TApplication);

    를 호출하면 되겠음다



    library MDIForms;



    uses

    SysUtils,

    Classes,

    Forms,



    Windows,

    //MDI Child폼의 실제 unit



    ChildU in 'ChildU.pas' {ChildForm};



    var

    DLLApp : TApplication;



    procedure MyDLLProc(Reason: Integer);

    begin

    if Reason = DLL_PROCESS_DETACH then

    { DLL이 메모리에서 내려갈때}

    { 애플리케이션 포인터를 원위치 시킨다. }

    if Assigned(DllApp) then

    Application := DllApp;

    end;



    procedure ShowMDIChildForm(MainApp : TApplication);

    var

    Child : TChildForm;



    begin



    if not Assigned(DllApp) then

    begin



    DllApp := Application;

    Application := MainApp;

    end;

    Child := TChildForm.Create(Application.MainForm);

    Child.Show;

    end;



    exports ShowMDIChildForm;

    begin

    { DllApp 변수를 초기화 한다. }

    DllApp := nil;

    DLLProc := @MyDLLProc;

    end.



    파워러브 델파이 98년 8월호에서 퍼왔음다....^^!!!

  • Profile
    안치봉 1999.03.10 02:11
    원영준 wrote:

    > 안녕 하십니까 !

    > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다.

    > 당분간은 ROM족 신세를 면치 못하겠지만 언젠가는 정보도 제공해 줄수 있는 날이 오길 ....

    >

    >

    > MAIN FORM에서 DLL로 SELF(TWindControl)를 넘기고 DLL에서 TForm1.CREATE 에 아규먼트로 주었는데 잘 안되네요!

    >

    > 누가좀 도와 주세요!!!!!



    안녕하세요!!.



    음....죄송하지만 테스트 해보신 전체(DLL 부분과 DLL 을 호출하는 부분) 소스를 이곳에 올리시거나 혹은 저에게 메일로 보내주셔야 분석이 일단은 가능하겠습니다.



    생각하신 방법(DLL에 들어있는 form을 child로 띄우는 방법)은 불가능하지 않은걸로 알고 있습니다. 아마도 구현하는 부분이 잘못된것 같군요.



    감사합니다.

    • 원영준
    • 1999.03.09 22:20
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.10 04:15
      소스는 잘~ 받았습니다. 소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다). ...
    • 신인재
      1999.03.10 04:08
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 안치봉
      1999.03.10 02:11
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 송기원
    • 1999.06.10 19:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.06.10 20:22
      송기원 께서 말씀하시기를... > windows 95에서 실행중인 모든 프로그램의 Handle을 참조할려고 합니다. ...
    • 원영준
      1999.03.09 22:20
      안녕 하십니까 ! 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. 당분간은 ROM족 신세를 면치 못하겠...
    • 글쎄요
      1999.06.11 00:02
      이승윤 께서 말씀하시기를... > 여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다. ...
    • 안치봉
      1999.03.10 04:15
      소스는 잘~ 받았습니다. 소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다). ...
    • 구창민
      1999.06.10 20:16
      이승윤 께서 말씀하시기를... > 여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다. ...
    • 신인재
      1999.03.10 04:08
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 안치봉
      1999.03.10 02:11
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 안치봉
      1999.03.09 06:01
      박근영 wrote: > 안녕하세요.... > 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... > 사이트...
    • 박근영
      1999.03.09 17:39
      답변 감사합니다... 건강하세요.....
    • neperz
    • 1999.06.10 09:01
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 정청환
    • 1999.06.10 07:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김성동
      1999.06.11 00:10
      StringGrid의 소스를 보면 protected 멤버로 DeleteRow란 프로시져가 있습니다. 그러니까 StringGrid에서 ...
    • 안치봉
      1999.03.09 06:01
      박근영 wrote: > 안녕하세요.... > 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... > 사이트...
    • 박근영
      1999.03.09 17:39
      답변 감사합니다... 건강하세요.....
    • 정청환
    • 1999.06.10 07:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김태균
      1999.06.10 18:23
      정청환 께서 말씀하시기를... > stringgrid에서 한 라인(Row)을 삭제 > > stringgrid에서 한 라인(Row)...
    • chobo
    • 1999.06.10 07:13
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 박근영
      1999.03.09 04:01
      안녕하세요.... 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... 사이트 내용이 좋아 자주 들...
    • 최석기
      1999.06.10 09:22
      chobo 께서 말씀하시기를... > 프로그램에서 특정프로그램을 동작시킬려고 합니다. > ShellExecute()함수...
    • 안치봉
      1999.03.09 06:01
      박근영 wrote: > 안녕하세요.... > 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... > 사이트...
    • 박근영
      1999.03.09 17:39
      답변 감사합니다... 건강하세요.....
    • 김성률
    • 1999.03.06 05:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.08 00:34
      김성률 wrote: > 먼저 대단히 죄송합니다. 이해를 도우기 위한 측면만 생각하다 보니 제가 봐도 말도 않되...
    • 이창석
    • 1999.03.08 00:11
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최현호
      1999.06.10 05:53
      델파이상에서 다른 컴퓨터의 공유디렉토리를 네트워크 드라이브로 잡는 방법이 있나요? 델파이는 4.0을 ...
    • 안치봉
      1999.03.10 03:12
      이창석 wrote: > 반갑습니다. > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. > 몇일째 풀리지 않는...
    • 구창민
      1999.06.10 20:04
      최현호 께서 말씀하시기를... > 델파이상에서 다른 컴퓨터의 공유디렉토리를 네트워크 드라이브로 잡는 ...
    • 이창석
      1999.03.12 00:33
      안치봉 wrote: > 이창석 wrote: > > 반갑습니다. > > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. ...
    • 신인재
      1999.03.12 04:33
      > procedure TForm1.Button1Click(Sender: TObject); > var > i,y:integer; > begin > if opendialo...
    • 정성호
    • 1999.06.10 05:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김성률
      1999.03.06 05:11
      먼저 대단히 죄송합니다. 이해를 도우기 위한 측면만 생각하다 보니 제가 봐도 말도 않되는 것을 소스라고 ...
    • 안치봉
      1999.03.08 00:34
      김성률 wrote: > 먼저 대단히 죄송합니다. 이해를 도우기 위한 측면만 생각하다 보니 제가 봐도 말도 않되...
    • 공대규
      1999.06.10 22:35
      델파이에서 ActiveForm 어플리케이션으로 만드시는 것이 좋을 듯 합니다. 일단 File-New-ActiveX-ActiveFo...
    • 기련이
      1999.03.05 01:12
      저도 프로그램을 테스트 해 보았는데 문제가 생겼어요. body의 내용이 정상적으로 나타나지 않고 마치 암...
    • 안치봉
      1999.03.05 23:06
      기련이 wrote: > 저도 프로그램을 테스트 해 보았는데 문제가 생겼어요. > body의 내용이 정상적으로 나...
    • 기련이
      1999.03.06 02:33
      도와주셔서 정말 감사합니다. 제가 메일을 보낸 것은 OUTLOOK EXPRESS이고, 메일서버는 MS EXCHANGE서...
    • 안치봉
      1999.03.06 04:46
      기련이 wrote: > 도와주셔서 정말 감사합니다. > > 제가 메일을 보낸 것은 OUTLOOK EXPRESS이고, > ...
    • 기련이
      1999.03.10 02:30
      덕분에 문제를 해결하였습니다. Var InStr, OutStr: TStringStream; Begin InStr := TStringStr...