Q&A

  • ACCESS VIOLATI0N ERROR..
MDI 폼에서 메인메뉴의 서브 메뉴를 클릭하면 찰드윈도우가 뜨도록 코딩했습니다. 그런데 실행시키면 ACCESS VIOLATION ERROR가 뜹니다..



메인폼(Form2)에 찰드윈도우의 유닛을 아래와같이 추가해주었습니다..



USES UNIT1, UNIT3, UNIT4;



그리고 서브메뉴1을 클릭했을때 FORM1 이 보여지도록 했다면



Procedure Form2.서브메뉴1click(Sender:TObject);



begin

Form1.show;

end;



해줬습니다...

뭔가 잘못되거나 빠진부분이 있다면 ... 조언을 기다립니다.

감사합니다....



3  COMMENTS
  • Profile
    parkisu 2000.05.08 21:30
    최 소 영 wrote:

    > MDI 폼에서 메인메뉴의 서브 메뉴를 클릭하면 찰드윈도우가 뜨도록 코딩했습니다. 그런데 실행시키면 ACCESS VIOLATION ERROR가 뜹니다..

    >

    > 메인폼(Form2)에 찰드윈도우의 유닛을 아래와같이 추가해주었습니다..

    >

    > USES UNIT1, UNIT3, UNIT4;

    >

    > 그리고 서브메뉴1을 클릭했을때 FORM1 이 보여지도록 했다면

    >

    > Procedure Form2.서브메뉴1click(Sender:TObject);

    >

    > begin

    > //Form1.show;

    if not Assigned(Form1) then

    Form1:= TForm1.Create(Self);

    Form1.Show

    > end;



    Form의 Close이벤트에



    Action:= caFree;

    Form1:= nil;



    이렇게 해보세요.

  • Profile
    후니 2000.05.08 20:37
    우선 project -->option에서 auto-create forms로 되어있는 form을 Availlable forms로 옮기고요

    form을 호출하는부분에



    form1 := Tform1.create(self);

    form1.show;



    또는



    Application.createform(Tform1, form1);

    form1.show;



    해주시면 됩니다.



    그리고요 form1의 close event에 Action := Cafree;해주시면 됩니다.



    최 소 영 wrote:

    > MDI 폼에서 메인메뉴의 서브 메뉴를 클릭하면 찰드윈도우가 뜨도록 코딩했습니다. 그런데 실행시키면 ACCESS VIOLATION ERROR가 뜹니다..

    >

    > 메인폼(Form2)에 찰드윈도우의 유닛을 아래와같이 추가해주었습니다..

    >

    > USES UNIT1, UNIT3, UNIT4;

    >

    > 그리고 서브메뉴1을 클릭했을때 FORM1 이 보여지도록 했다면

    >

    > Procedure Form2.서브메뉴1click(Sender:TObject);

    >

    > begin

    > Form1.show;

    > end;

    >

    > 해줬습니다...

    > 뭔가 잘못되거나 빠진부분이 있다면 ... 조언을 기다립니다.

    > 감사합니다....

    >

  • Profile
    강인규 2000.05.08 20:32
    Mdi는 show명령이 아닌걸로 알고있는데 제가 잘못알고있는건지....

    만일 폼을 MDI Chile로 해주셨고 Available form이라면



    Application.CreateForm(Tform2,Form2);

    이렇게 코딩합니다. 뭐 다른 방법도 있지만......^^;

    show는 필요없습니다.



    그리구 form2의 close event에는 아래와 같이 코딩합니다.



    action := cafree;



    최 소 영 wrote:

    > MDI 폼에서 메인메뉴의 서브 메뉴를 클릭하면 찰드윈도우가 뜨도록 코딩했습니다. 그런데 실행시키면 ACCESS VIOLATION ERROR가 뜹니다..

    >

    > 메인폼(Form2)에 찰드윈도우의 유닛을 아래와같이 추가해주었습니다..

    >

    > USES UNIT1, UNIT3, UNIT4;

    >

    > 그리고 서브메뉴1을 클릭했을때 FORM1 이 보여지도록 했다면

    >

    > Procedure Form2.서브메뉴1click(Sender:TObject);

    >

    > begin

    > Form1.show;

    > end;

    >

    > 해줬습니다...

    > 뭔가 잘못되거나 빠진부분이 있다면 ... 조언을 기다립니다.

    > 감사합니다....

    >