Q&A

  • MDI child 폼죽이는 방법은?
안녕하세요??

현재 저는 MDI Application으로 프로그램을 만들고 있습니다...

그런데... 한가지 문제점이 생겨서 이렇게 글을 띄웁니다...

그 문제점이란....

자식 윈도우에 닫기버튼을 만들어서 자식 윈도우를 죽였습니다...

근데... 닫기 버튼을 클릭하지 않고 기냥 메뉴에서 다른 자식 윈도우를 호출하고 닫기 버튼을 누르면...

그전에 있던 자식 윈도우가 살아 있습니다...

근데.... 화면이 작아서 닫기버튼이 사라지거든요...



그래서 이렇게 글을 쓰는데... 혹시 자식 윈도우를 호출할때 기존에 있던 자식 윈도우가 사라지게 하는 방법을 아시는지??



부모윈도우에서 자식 윈도우 호출할때....



procedure TForm1.N2Click(Sender: TObject);

begin

Form2 := TForm2.Create(Application);

Form2.Show;

end;





로 했고...

자식 윈도우에서는....

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

begin

Action := caFree;

end;

procedure TForm4.Button5Click(Sender: TObject);

begin

close;

end;

로 했거든요...

글구....



Object Inspector에서

BorderIcons- biSystemMenu : False

biHelp : False

BorderStyle : bsSingle

FormStyle : MdiChild

WindowState : wsMaximized 로만 수정을 했습니다...

부디 알려 주세요...







1  COMMENTS
  • Profile
    김경완 2000.09.07 08:15
    저도 잘은 모르지만. 이렇게 해봄이...



    현재 차일드폼이 하남나 생성되어 있는 것 같군요. 맞나요.

    만약에 하나라면 새 차일폼을 생성하기전에 완전히 날려 버리면 되지요.



    차일폼역시 Tcustomform이기에 이 콤퍼넌트의 속성과 메서드를 사용해서 날려버리면

    되지요.



    만약 하나의 차일드폼만 있다면 mdichildren[0].destroy라고 하면 현재 실행중인 차일드가 박살이 나지요.



    도움이 되었으면 좋겠네요.