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.06.11 04:48
      안녕하세요 저는 Access DB를 사용하여 프로그램을 합니다. 그런데 setup 화일을 만들려하는데 ODBC에 등...
    • 안치봉
      1999.03.12 03:47
      이대선 wrote: > 후킹 콤퍼넌트 진짜 잘 만드셨고 요긴하게 잘 쓰고 있습니다. > > 현재 ...
    • 한상훈
    • 1999.06.11 04:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.06.11 21:00
      한상훈 께서 말씀하시기를... > data를 검색하는데 where 절의 조건을 edit.text에 입력한 값들을 > and...
    • 1999.03.12 03:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.12 03:43
      한 wrote: > 제목 되로 아래한글과 MSWORD의 클래스 이름을 알아내는 방법을 알고 싶습니다. > > 감기 ...
    • 1999.03.12 03:17
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 황익순
      1999.06.11 02:28
      제발 답변좀 해주세요... 스트링그리드에서 지원하는건 연속적인 데이타에 대해서만 다중선택(Multi Sel...
    • 안치봉
      1999.03.12 03:43
      한 wrote: > 제목 되로 아래한글과 MSWORD의 클래스 이름을 알아내는 방법을 알고 싶습니다. > > 감기 ...
    • 구창민
      1999.06.11 20:54
      황익순 께서 말씀하시기를... > 제발 답변좀 해주세요... > > 스트링그리드에서 지원하는건 연속적인 ...
    • 이상석
    • 1999.06.11 02:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 공대규
      1999.06.11 02:50
      델파이로 프로그래밍하다 보면 맨날 만나는 에러 메시지입니다. 한마디로 메모리 접근시 문제가 생기면 대...
    • 이창석
    • 1999.03.08 00:11
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.10 03:12
      이창석 wrote: > 반갑습니다. > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. > 몇일째 풀리지 않는...
    • 이창석
      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.11 02:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 백승환
      1999.06.11 06:18
      박성훈 께서 말씀하시기를... > 식당주문관련 프로그램을 만들고 있는데요. > > 판매테이블:판매코드, ...
    • 안치봉
      1999.03.12 03:47
      이대선 wrote: > 후킹 콤퍼넌트 진짜 잘 만드셨고 요긴하게 잘 쓰고 있습니다. > > 현재 ...
    • 박성훈
    • 1999.06.11 01:45
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 백승환
      1999.06.11 06:24
      박성훈 께서 말씀하시기를... > 레이블을 클릭하면 dbgrid에 한줄만 선택되도록 하고 싶은데요. > rowsel...
    • [재질문]dbgrid에서
      1999.06.13 21:32
      백승환 께서 말씀하시기를... > 박성훈 께서 말씀하시기를... > > 레이블을 클릭하면 dbgrid에 한줄만 선...
    • 원영준
    • 1999.03.09 22:20
    • 3 COMMENTS
    • /
    • 4 LIKES
    • 안치봉
      1999.03.10 04:15
      소스는 잘~ 받았습니다. 소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다). ...
    • 신인재
      1999.03.10 04:08
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 안치봉
      1999.03.10 02:11
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 백승환
      1999.06.11 08:28
      최선기 께서 말씀하시기를... > 안녕하세요.. 델파이를 배우고 있는 회사원입니다. > 제가 물어볼 것은 ...
    • 박성훈
      1999.06.11 01:36
      최선기 께서 말씀하시기를... > 안녕하세요.. 델파이를 배우고 있는 회사원입니다. > 제가 물어볼 것은 ...
    • 안치봉
      1999.03.10 04:15
      소스는 잘~ 받았습니다. 소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다). ...
    • 신인재
      1999.03.10 04:08
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 안치봉
      1999.03.10 02:11
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 수빈
    • 1999.06.10 22:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 공대규
      1999.06.11 02:26
      cayp.inf 파일의 내용을 한 번 올려 주실래요? 제가 한 번 볼께요... 수빈 께서 말씀하시기를... > Ac...
    • 이창석
    • 1999.03.08 00:11
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 왕초
      1999.06.10 22:30
      DLL를 디버깅하려고 합니다.. DLL 프로젝트를 어플리케이션에서 포함하여 breakpoint를 걸어서 하려고 ...
    • 안치봉
      1999.03.10 03:12
      이창석 wrote: > 반갑습니다. > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. > 몇일째 풀리지 않는...
    • 글쎄요
      1999.06.10 23:34
      왕초 께서 말씀하시기를... > DLL를 디버깅하려고 합니다.. > DLL 프로젝트를 어플리케이션에서 포함하여...
    • 이창석
      1999.03.12 00:33
      안치봉 wrote: > 이창석 wrote: > > 반갑습니다. > > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. ...
    • 신인재
      1999.03.12 04:33
      > procedure TForm1.Button1Click(Sender: TObject); > var > i,y:integer; > begin > if opendialo...
    • chobo
    • 1999.06.10 21:09
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 기련이
    • 1999.03.05 01:12
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      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...
    • franco97
    • 1999.06.10 20:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.06.10 20:45
      franco97 께서 말씀하시기를... > RichEdit에서 입력을 하다가 Ctrl+Enter를 입력하면 아래칸으로 이동을 ...
    • powermac
    • 1999.06.10 19:31
    • 0 COMMENTS
    • /
    • 0 LIKES