Q&A

  • mdi폼에서 sdi폼을 부를 때 어떻게 하나요?
안냥하세요??

즐거운 주말인데... 오늘도 어김없이 이렇게 ~~;



질문..........

mdi 부모폼에서 메뉴바를 이용해서 sdi폼을 하나 부를려구 합니다....

그런데... Project project1.exe raised exception EAccessViailtion with massage~~

(여기까장 적는냐구 힘들었습니당~ ^^;)하면서 에러가 나더라구요...

무슨 내용인지는 잘 모르겠는데.....

코딩은 이렇게했거든요...



var

i : integer;

begin

try

Form51 := TForm51.Create(Self); --> 에러나는 부분...

FORM51.ShowModal;

finally

form51.Free;

END;



근데... sdi폼에서 visible에서 false로 놓구하면 된다고 해서 그렇게 했는데도 안되더라구

요...

여러 방법을 해 보았는데... 왜 안 되는 것인지...



고수님들의 조언을 부탁드립니다....

글구 이 글을 읽으시는 분들... 즐거운 주말엔 가족과 보내셔야 하는 것 알죠??

혹시 먼 미래에 가족이 되실분을 만나시는 분들도 괜히 싸우지 마시고... 즐코하세요...

3  COMMENTS
  • Profile
    psjawon 2000.09.24 05:53
    초 wrote:

    > 안냥하세요??

    > 즐거운 주말인데... 오늘도 어김없이 이렇게 ~~;

    >

    > 질문..........

    > mdi 부모폼에서 메뉴바를 이용해서 sdi폼을 하나 부를려구 합니다....

    > 그런데... Project project1.exe raised exception EAccessViailtion with massage~~

    > (여기까장 적는냐구 힘들었습니당~ ^^;)하면서 에러가 나더라구요...

    > 무슨 내용인지는 잘 모르겠는데.....

    > 코딩은 이렇게했거든요...

    >

    > var

    > i : integer;

    > begin

    > try

    > Form51 := TForm51.Create(Self); --> 에러나는 부분...

    > FORM51.ShowModal;

    > finally

    > form51.Free;

    > END;

    >



    답변해 드릴께요. 현재 MDI폼에서 SDI 즉 FormSyle이 fsNormal로 된 폼을 호출하는경우

    인데... 위에서 에러가 나는경우를 보니까 현재 프로젝트화일에 Form51이라는 폼이

    자동생성되어 있는것 같습니다. 이를 일단 없애려면. 메뉴에서 Project - Options 에서

    Auto Create ....라는 부분(리스트 상자)에 현재 Form51이라는 폼이 있을 것인데

    이를 옆에있는 Available...이라는 상자로 >버튼으로 옮기세요



    그리고나서 Form을 호출할때 이렇게 해보세요

    다음은 버튼 Call을 누를경우 SDI폼 PayForm을 호출하는 경우 입니다.



    Procedure TMainForm.BtnCallClick(Sender : Object);

    begin

    PayForm := TPayForm.Create(Application);

    PayForm.ShowModal;

    end;

    이라고 해보세요...



    그리구요 위에 보니가 SDI의 Visible 속성을 False로 한다는 것을 보니까

    아마도 저의 생각대로 현재 프로젝트에 Form51이 자동으로 생성되게 되어

    있는 것 같습니다. 위에서 설명한데로 프로젝트 옵션상자에서 자동생성

    폼으로 등록되어있는 Form51을 옆에있는 Available Form 상자로 옮기세요...





  • Profile
    2000.09.25 01:06
    psjawon wrote:

    > 초 wrote:

    > > 안냥하세요??

    > > 즐거운 주말인데... 오늘도 어김없이 이렇게 ~~;

    > >

    > > 질문..........

    > > mdi 부모폼에서 메뉴바를 이용해서 sdi폼을 하나 부를려구 합니다....

    > > 그런데... Project project1.exe raised exception EAccessViailtion with massage~~

    > > (여기까장 적는냐구 힘들었습니당~ ^^;)하면서 에러가 나더라구요...

    > > 무슨 내용인지는 잘 모르겠는데.....

    > > 코딩은 이렇게했거든요...

    > >

    > > var

    > > i : integer;

    > > begin

    > > try

    > > Form51 := TForm51.Create(Self); --> 에러나는 부분...

    > > FORM51.ShowModal;

    > > finally

    > > form51.Free;

    > > END;

    > >

    >

    > 답변해 드릴께요. 현재 MDI폼에서 SDI 즉 FormSyle이 fsNormal로 된 폼을 호출하는경우

    > 인데... 위에서 에러가 나는경우를 보니까 현재 프로젝트화일에 Form51이라는 폼이

    > 자동생성되어 있는것 같습니다. 이를 일단 없애려면. 메뉴에서 Project - Options 에서

    > Auto Create ....라는 부분(리스트 상자)에 현재 Form51이라는 폼이 있을 것인데

    > 이를 옆에있는 Available...이라는 상자로 >버튼으로 옮기세요

    >

    > 그리고나서 Form을 호출할때 이렇게 해보세요

    > 다음은 버튼 Call을 누를경우 SDI폼 PayForm을 호출하는 경우 입니다.

    >

    > Procedure TMainForm.BtnCallClick(Sender : Object);

    > begin

    > PayForm := TPayForm.Create(Application);

    > PayForm.ShowModal;

    > end;

    > 이라고 해보세요...

    >

    > 그리구요 위에 보니가 SDI의 Visible 속성을 False로 한다는 것을 보니까

    > 아마도 저의 생각대로 현재 프로젝트에 Form51이 자동으로 생성되게 되어

    > 있는 것 같습니다. 위에서 설명한데로 프로젝트 옵션상자에서 자동생성

    > 폼으로 등록되어있는 Form51을 옆에있는 Available Form 상자로 옮기세요...

    >

    >

    좋은 답변이셨습니다...

    하지만 다 해보았는데 안되더군요... ~~;

    여전히 파란 줄이 파~악 하고 뜨는데.. 흑흑흑... 어떻게 해야 할지..

    다르게 호출하는 방법은 없나요?

    이번이 두번째 만드는 것인데 첫번째는 어떻게 해서 띄었는데...

    기억이 나질 않아요...

    고수님들의 조언을 부탁드립니다..



  • Profile
    2000.09.25 01:20
    초 wrote:

    > psjawon wrote:

    > > 초 wrote:

    > > > 안냥하세요??

    > > > 즐거운 주말인데... 오늘도 어김없이 이렇게 ~~;

    > > >

    > > > 질문..........

    > > > mdi 부모폼에서 메뉴바를 이용해서 sdi폼을 하나 부를려구 합니다....

    > > > 그런데... Project project1.exe raised exception EAccessViailtion with massage~~

    > > > (여기까장 적는냐구 힘들었습니당~ ^^;)하면서 에러가 나더라구요...

    > > > 무슨 내용인지는 잘 모르겠는데.....

    > > > 코딩은 이렇게했거든요...

    > > >

    > > > var

    > > > i : integer;

    > > > begin

    > > > try

    > > > Form51 := TForm51.Create(Self); --> 에러나는 부분...

    > > > FORM51.ShowModal;

    > > > finally

    > > > form51.Free;

    > > > END;

    > > >

    > >

    > > 답변해 드릴께요. 현재 MDI폼에서 SDI 즉 FormSyle이 fsNormal로 된 폼을 호출하는경우

    > > 인데... 위에서 에러가 나는경우를 보니까 현재 프로젝트화일에 Form51이라는 폼이

    > > 자동생성되어 있는것 같습니다. 이를 일단 없애려면. 메뉴에서 Project - Options 에서

    > > Auto Create ....라는 부분(리스트 상자)에 현재 Form51이라는 폼이 있을 것인데

    > > 이를 옆에있는 Available...이라는 상자로 >버튼으로 옮기세요

    > >

    > > 그리고나서 Form을 호출할때 이렇게 해보세요

    > > 다음은 버튼 Call을 누를경우 SDI폼 PayForm을 호출하는 경우 입니다.

    > >

    > > Procedure TMainForm.BtnCallClick(Sender : Object);

    > > begin

    > > PayForm := TPayForm.Create(Application);

    > > PayForm.ShowModal;

    > > end;

    > > 이라고 해보세요...

    > >

    > > 그리구요 위에 보니가 SDI의 Visible 속성을 False로 한다는 것을 보니까

    > > 아마도 저의 생각대로 현재 프로젝트에 Form51이 자동으로 생성되게 되어

    > > 있는 것 같습니다. 위에서 설명한데로 프로젝트 옵션상자에서 자동생성

    > > 폼으로 등록되어있는 Form51을 옆에있는 Available Form 상자로 옮기세요...

    > >

    > >

    > 좋은 답변이셨습니다...

    > 하지만 다 해보았는데 안되더군요... ~~;

    > 여전히 파란 줄이 파~악 하고 뜨는데.. 흑흑흑... 어떻게 해야 할지..

    > 다르게 호출하는 방법은 없나요?

    > 이번이 두번째 만드는 것인데 첫번째는 어떻게 해서 띄었는데...

    > 기억이 나질 않아요...

    > 고수님들의 조언을 부탁드립니다..

    >



    ^^; 초자가 어떻게 어떨결에 이상하게 해 냈어요....

    문제는 폼51에 있었어요....

    폼51은 다른 사람이 만들었거든요.. ~~; 제 능력이 안 되는 부분이라서...

    결론을 말씀드리자면 ....

    폼51에서 FormCreate 부분에 폼의 크기를 지정하는 문장이 들어가 있더라구요...

    근데.. 그것을 주석형태로 바꾸고 하니까 후다닥 떠 버리더라구요...

    다른 분들이 참고 하셔서 저 같이 고생하지 않았으면 하는 바램을 글을 올립니다...

    즐거운 주말 되시고.... 흑흑흑.... 여자친구 보고 싶어요~~~~ 용~