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
    • chbang
    • 1999.05.19 23:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유수
      1999.05.20 00:33
      안녕하세요. 유수입니다. DBGrid는 기본적으로 다중 선택을 지원합니다. Ctrl 키를 누른 상태로, 마...
    • 박종길
    • 1999.05.19 22:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.19 22:27
      박종길 wrote: > 델파이로 만든 프로그램에서 > 시스템에 설정되어 있는 드라이브에 대하여 > 지정된 화...
    • 이정욱
      1999.05.19 22:33
      한델(http://www.delphi.co.kr)의 강의실에 가보세요. 인쇄에 대한 강좌가 있습니다. 그것을 참고하세요. ...
    • 이현정
    • 1999.05.19 20:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 22:32
      DB콘트롤을 사용하기보다 일반 TEdit을 사용하시면 간단히 해결되지 않을까요? TEdit을 사용하셔서 입력이...
    • 김지연
    • 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: > 계산 항목을 가로로 나오게 할수 없는지요?? > 조건을 개별적으로 줄수 있는 방법이 없...