Q&A

  • Modal Form 불러오기
form1에 있는 Button을 클릭하면 child window를 불러오도록 하고 싶습니다.

그래서

procedure THBSC101F.btn_detailClick(Sender: TObject);

begin

HBSC101CF := THBSC101CF.Create(Application);

HBSC101CF.ShowModal;

if HBSC101CF.ModalResult = mrOK then begin

HBSC101CF.Close; HBSC101CF.Free;

end;

end;

와 같이 코딩을 했는데 실행시에

Project HBS_BILLING.exe raised exception class EInvalidOperation with message 'Cannot make a visible window modal'. Process stopped. Use Step or Run to continue.



라는 에러 메세지가 뜹니다. 코딩이 잘못 된건지, 아니면 폼에서 따로 지정해 주어야 하는 것이 있는지... 아시는 분 답변해 주시면 무지 고맙겠습니다아.....

2  COMMENTS
  • Profile
    류한규 1999.11.27 18:05
    안녕하십니까?



    HBSC101CF의 FormStyle이 MDIChild이군요

    MDIChild Form을 ShowModal하면

    'Cannot make a visible window modal'라는 메세지가 나옵니다.

    그리고 HBSC101CF := THBSC101CF.Create(Application); 에서 FormShow까지 이루어

    집니다.





    참고로 HBSC101CF의 폼안에서 ModalResult := mrOk와 같이 사용했다면

    ModalResult가 어떠한 처리값을 갔고 폼을 Close하기 때문에

    if HBSC101CF.ModalResult = mrOK then begin

    HBSC101CF.Close; 이 의미가 없습니다.



    그럼 즐거운 하루가 되시길.....









    현경 wrote:

    > form1에 있는 Button을 클릭하면 child window를 불러오도록 하고 싶습니다.

    > 그래서

    > procedure THBSC101F.btn_detailClick(Sender: TObject);

    > begin

    > HBSC101CF := THBSC101CF.Create(Application);

    > HBSC101CF.ShowModal;

    > if HBSC101CF.ModalResult = mrOK then begin

    > HBSC101CF.Close; HBSC101CF.Free;

    > end;

    > end;

    > 와 같이 코딩을 했는데 실행시에

    > Project HBS_BILLING.exe raised exception class EInvalidOperation with message 'Cannot make a visible window modal'. Process stopped. Use Step or Run to continue.

    >

    > 라는 에러 메세지가 뜹니다. 코딩이 잘못 된건지, 아니면 폼에서 따로 지정해 주어야 하는 것이 있는지... 아시는 분 답변해 주시면 무지 고맙겠습니다아.....

  • Profile
    김석수 1999.11.27 18:00
    다음과 같이 한번 해보시기 바랍니다.



    procedure THBSC101F.btn_detailClick(Sender: TObject);

    begin

    With THBSC101CF.Create(Self) do

    Try

    ShowModal;

    Finally

    Free;

    End;

    end;





    현경 wrote:

    > form1에 있는 Button을 클릭하면 child window를 불러오도록 하고 싶습니다.

    > 그래서

    > procedure THBSC101F.btn_detailClick(Sender: TObject);

    > begin

    > HBSC101CF := THBSC101CF.Create(Application);

    > HBSC101CF.ShowModal;

    > if HBSC101CF.ModalResult = mrOK then begin

    > HBSC101CF.Close; HBSC101CF.Free;

    > end;

    > end;

    > 와 같이 코딩을 했는데 실행시에

    > Project HBS_BILLING.exe raised exception class EInvalidOperation with message 'Cannot make a visible window modal'. Process stopped. Use Step or Run to continue.

    >

    > 라는 에러 메세지가 뜹니다. 코딩이 잘못 된건지, 아니면 폼에서 따로 지정해 주어야 하는 것이 있는지... 아시는 분 답변해 주시면 무지 고맙겠습니다아.....