Q&A

  • FORM이 있는 DLL 사용법 좀...
안녕하세요 ?

델파이를 접한지 얼마 되지 않는 초보입니다.

하나의 Application 에 Form 이 20개 이상 사용됩니다.

Form 1개만 사용시 파일싸이즈가 700KByte 정도라 각각의 Form을

DLL에 넣으려고합니다.

문제는 Application에서 DLL내의 Procedure를 호출할 때 DLL내의 폼을 생성하는

것을 모르겠네요.



Application 내에서 MyDllForm; 으로 호출하면 DLL내의 Form이 수행되고 Dll 내의Form이 종료되면 다시 Application의 메인 폼이 나오게 하려고 일주일을

고생했는데 실패하여 이렇게 도움을 청합니다.



꼬~~~옥 부탁드립니다.

1  COMMENTS
  • Profile
    김봉학 1999.12.13 11:56
    민광호 wrote:

    > 안녕하세요 ?

    > 델파이를 접한지 얼마 되지 않는 초보입니다.

    > 하나의 Application 에 Form 이 20개 이상 사용됩니다.

    > Form 1개만 사용시 파일싸이즈가 700KByte 정도라 각각의 Form을

    > DLL에 넣으려고합니다.

    > 문제는 Application에서 DLL내의 Procedure를 호출할 때 DLL내의 폼을 생성하는

    > 것을 모르겠네요.

    >

    > Application 내에서 MyDllForm; 으로 호출하면 DLL내의 Form이 수행되고 Dll 내의Form이 종료되면 다시 Application의 메인 폼이 나오게 하려고 일주일을

    > 고생했는데 실패하여 이렇게 도움을 청합니다.

    >

    > 꼬~~~옥 부탁드립니다.



    DLL 내의 함수입니다.



    unit ...

    .

    .

    .

    .

    .

    procedure MyDllForm(Form :TForm); export;



    var

    Form1 :TForm;



    implementation



    procedure MyDllForm(Form :TForm);

    begin

    Form.Visible := false;

    with TForm1.Create(Form) do

    Visible := true;

    end;



    // Close Event를 처리 합니다.

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

    begin

    Action := caFree;



    // 인자로 받은 MainForm을 강제로 보입니다..

    TForm(Owner).Visible := true;

    end;





    MyDllForm을 호출 할 때 MainForm을 인자로 해서 호출 하시면

    의외로 쉽게 해결 되더군요....



    정확한 답변이 되었는지 모르겠군요...



    그럼 이만....