Q&A

  • [긴급SOS]DLL 에서 Mdi Child Form생성시 문제점?
아래의 샘플은 제가 DLL자료를 찾다가 어느분인지는 기억은 안나지만

예제를 쓰신것을 보고 공부했던 것입니다....

그런데...

아래의 소스데로 dll에서 MDI child form을 넣고 메인(exe) 프로그램에서

dll내의 child window를 생성하고 화면에 띄웠을때에...

이상하게도 Form1.Mdichildcount와 Form1.mdichildren[]이 전형 먹히질

않습니다.....



누가 저좀 도와주세요.....

벌써 4일째 열심히 해매고만 있습니다.................

------------------------------

델파이로 가는 길이 왜 이리도 멀기만 한지....



Listing A. MDIForms.dpr

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.

Listing B. MDIForms.dpr

unit MainAppU;

interface

uses

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs, Menus;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

Test1: TMenuItem;

ShowMDIChild1: TMenuItem;

N1: TMenuItem;

Exit1: TMenuItem;

procedure ShowMDIChild1Click(Sender: TObject);

procedure Exit1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

{ Import from the DLL. }

procedure ShowMDIChildForm(App : TApplication);

external 'mdiforms.dll';

var

Form1: TForm1;

implementation

{$R *.DFM}

{ Create a child form contained in the DLL. }

procedure TForm1.ShowMDIChild1Click(Sender: TObject);

begin

//DLL함수 호출 부분

ShowMDIChildForm(Application);

end;

procedure TForm1.Exit1Click(Sender: TObject);

begin

Close;

end;

end



0  COMMENTS
    • 김지연
    • 1999.05.19 19:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 22:29
      아래의 문제가 아닌것 같네요. 분명 끝나면서 하는일에 생성되지 않은 콘트롤을 사용하려고 하는것 같습니...
    • 안치봉
      1999.05.19 20:36
      김지연 wrote: > 데이타를 구조화해서 자료를 집어넣을려고 아래와 같이 코딩을 했습니다.. > > > ty...
    • sun
    • 1999.05.19 18:55
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.20 00:19
      김하정 wrote: > 안녕하세요... > 제가 어제 안치봉씨께 다시 소스를 보냈는데 > Q&A에 올리라는 걸 깜...
    • 안치봉
      1999.05.19 21:06
      김하정 wrote: > 안녕하세요... > 제가 어제 안치봉씨께 다시 소스를 보냈는데 > Q&A에 올리라는 걸 깜...
    • 북해
    • 1999.05.19 18:22
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 지종진
    • 1999.05.19 16:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 22:26
      아무래도 BDE의 버전 문제 같군요. BDE만 최신으로 설치해 보세요. BDE는 개발환경과 사용환경이 같은 버...
    • 하윤철
      1999.05.19 17:33
      강지영 wrote: > loop로 처리하였을때 Update Failed라는 에러가 발생합니다. > > with Query1 do > b...
    • 1999.05.19 10:06
      강지영 wrote: > 안녕하세요. 또 지영이 입니다. > Tdatabase의 ApplyUpdates메소드를 사용하다가 문제에...
    • 강지영
      1999.05.19 15:23
      한 wrote: > 강지영 wrote: > > 안녕하세요. 또 지영이 입니다. > > Tdatabase의 ApplyUpdates메소드를 ...
    • 1999.05.20 01:49
      강지영 wrote: > 한 wrote: > > 강지영 wrote: > > > 안녕하세요. 또 지영이 입니다. > > > Tdatabase...
    • 김영주
    • 1999.05.19 04:52
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.19 21:15
      김영주 wrote: > 계속 Screen Saver에 대한 질문이군요. > > explorer에서 보면 '화면보호기 연결프...
    • 김영주
      1999.05.21 18:53
      Hi. > 이 게시판에서 ShellExecute 나 WinExe 로 검색을 해보시기 바랍니다. > 아니면 Win32 API 도...
    • 강경중
    • 1999.05.19 04:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 04:39
      Label은 죽어도 포커스를 가지지 못합니다. 강경중 wrote: > 도와 주세요 > 폼의 여러 콤포넌트 중 실...
    • 강경중
    • 1999.05.19 03:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 04:01
      저장을 하셔야 합니다. ComboBox1.Items.SaveToFile 로 저장하시고 시작될때는 ComboBox1.Items.Loa...
    • 신규찬
    • 1999.05.19 02:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 전철호
      1999.05.19 19:53
      신규찬 wrote: > maskedit에서 한글을 입력하면 에러가 발생합니다. > 어떻게 처리하면 되는지 아시는분 ...
    • 오기주
    • 1999.05.19 02:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하윤철
      1999.05.19 03:22
      오기주 wrote: > 계산 항목을 가로로 나오게 할수 없는지요?? > 조건을 개별적으로 줄수 있는 방법이 없...
    • 초보자
    • 1999.05.19 02:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • redhead
      1999.05.20 01:38
      초보자 wrote: > > 메인화면이 회색으로 되어 있어 밋밋하네요 > 그림을 입히는 방법을 알고십습니다. ...
    • 초보자
      1999.05.20 02:47
      답장을 주셔서 감사드립니다. 헌데 아래의 코딩을 복사하여 실행을 시켰는데 에라는 나지않고 컴파일이 ...
    • 마성수
    • 1999.05.19 00:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • redhead
      1999.05.19 01:01
      마성수 wrote: > 정말 이상한 일입니다. > MDI Child 폼에서 일반 폼을 CREAT할려고 했는데.. > 버튼을 ...
    • 왕초보
    • 1999.05.19 00:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • redhead
      1999.05.19 01:04
      왕초보 wrote: > 주 프로그램에서 DLL안에 있는 윈도우를 MDI Child로 설정하여 > 윈도우를 뛰운다음......
    • 안종필
    • 1999.05.18 23:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 03:58
      폰트를 굴림체로 맞추고 해보세요. 넓이가 일정한 폰트를 사용해야 합니다. Fixed Pitch 폰트라고 합니다...