Q&A

  • 폼있는 DLL을 만들때요, 폼을 하나밖에 못 만드나요?
안녕하세요.

폼있는 DLL을 만들때요, 폼을 하나밖에 못 만드나요?
서브폼까지 계속해서 만들수는 없나요?

서브폼을 만들기는 만들었는데요,
Modal로 띄운 서브폼에서 그 이전폼으로 변수값을 전달할 수가 없어요.
컴파일까지는 잘 되는데요, 서브폼도 잘 뜨고요...
그런데 실행을 하면 변수값을 전달하는 부분에서 프로그램이 절단나요.
uses문에 상위폼의 유닛을 포함시켰는데요...
그렇게 해서 상위폼의 변수를 지정하고 거기에 값을 넣었는데요...
일반 EXE프로젝트에서는 잘 되잖아요.
그런데 DLL폼에서는 그게 안되요.
그렇다면 DLL폼에서는 implementation 아래의 uses문에 유닛을 포함시
키는 것은 아무런 소용이 없다는 것인가요?

누가 좀 알려줘요.
폼있는 DLL에서 서브폼을 만들었을때, 그 서브폼에서 이전 폼으로 변수값
을 전달하는 방법좀 갈켜줘요.

메모리 맵이나 공유메모리는 서로다른 DLL간의 데이타를 공유하는 방법이
잖아요.
그런데 제가 알고 싶은 것은 하나의 DLL에서 거기에 속한 폼과 그 하위폼을
만들었을때, 하위폼에서 상위폼으로 변수값을 전달하고 싶은 것이에요.

알려주세요....
제발...
Please....
2  COMMENTS
  • Profile
    황병오 2002.03.29 01:58
    예제)

    Form1의 프로시져
    unit Unit1;
      ...

    type
      TForm1 = class(TForm)
      ...

    implementation
    uses Unit2;
      ...

      with TForm2.Create(Self) do { Form2의 Owner는 Form1으로 하고 }
      try
        ShowModal;
      finally
        Free;
      end;

    Form2의 프로시져
    unit Unit2;
      ...

    type
      TForm2 = class(TForm)
      ...

    implementation
    uses Unit1;
      ...

      TForm1(Owner).Button1.Caption := 'a'; { Owner를 TForm1으로 타입캐스팅한다 }


  • Profile
    이원근 2002.03.29 04:38

    몇일동안 이것 때문에 고생했었는데요...

    가르쳐 주셔서 정말 정말 감사합니다.

    황병오님  ^ - ^  화이팅~