Q&A

  • showmodal로 열었는 폼과 메인폼제어
로그인 폼을 만들고 로그인이 이루어지면 MDI폼을 여는 프로그램을 작성 중입니다.

구현을 이렇게 해보았습니다.

MDI폼이 show할때 로그인 폼을 showmodal로 생성하였습니다.(폼스타일은 normal)

로그인을 하고 사용은 정상적으로 됩니다. 그런데 로긴을 하려다 취소를 해서 창을 닫는 경우는 MDI폼이 열리고 맙니다.

어떻게 구현하는것이 좋을까요? 로그인 폼에서 MDI폼의 FormClose를 호출함에 있어서 파라메터 값을 두개를 넘겨야하는데요. 어떤 값을 넘겨야할지 모르겠습니다. frmMain.FormClose(Sender : Tobject; var Action : TCloseAction) 이렇게 되어있는데 어떤 값을 넘겨줘야하는지 모르겠습니다.

도움 부탁드립니다.
1  COMMENTS
  • Profile
    오병주 2003.03.22 21:15
    취소 버튼 누를때   ModalResult := MrCancel; 추가 시켜 보세요..

    이것을 해도 않되면

    메인 프로그램의 DPR쪽이 잘못 된듯 싶은생각이 드는군요..

    제가 한 플 의 예제 입니다.

    정상적으로 로그인이 않되었을겨우 전부 Free시켜주여야 합니다.

    //프로그램이 기 실행됐는지 검사
      if AlreadyRun('프로그램명') then Halt;
      //////////////////////////////////////

      Application.CreateForm(TNS_DM, NS_DM); // DataBase명
      FrmLogin := TNS_SYF010I.Create(nil);         // 로그인폼  
      /////////////////////////////////////

      if frmLogin.ShowModal = mrOk then    // 성공적으로 로긴되었으면...
      begin // 로긴창 닫구 메인폼 실행
        frmLogin.Free;  // Login화면 메모리에서 삭제...
        // 스프레쉬트 폼 생성....
        splashform := Tsplashform.Create(Application);  //스프레 쉬트 폼.
        splashform.show;                                            // 열기
        splashform.update;                                          // 업데이트

        Application.Initialize;
        Application.Title := '프로그램명';

        Application.CreateForm(TNS_MAIN_FORM, NS_MAIN_FORM);
        
        splashform.Hide;
        splashform.Free;

        Application.Run;

      end
      else // 그냥 로긴창만 닫는다.
      Begin
        frmLogin.Free;  
        NS_DM.Free;
      end;