Q&A

  • Form UnLoad
아주 초보 적인 질문인듯 하지만

저에게는 너무나 어려워서...

^^;



폼을 닫을때.. 그냥 Close 를 시켰더니..

폼이 메모리에서 지워지지 않는듯 하군요..

비베에서 말하자면.. Hide(숨기기) 와 같은듯...

다쉬 말해.. 폼을 Show 하고 Close를 하면.

처음 Show 를 할때는 Form_Create 이벤트를 타는데..

Close 를 한후 다쉬 Show 를 하면 Create 이벤트를 타지 않습니다..

Close를 하면.. 폼은 안보이되.. 메모리에서는 지워지지 않는듯 한데요..



폼을 닫을때.. 메모리에서도 지워지게 닫고 싶은데요..

Free를 쓰니.. 실행은 돼는데.. 이 Free부분을 지날때.. 에러가 나는군요..

Destory 를 썼더니.. 아예 실해도 안돼는군요..



폼을 메모리에서 아예 지워버리려면 어떻게 해야 하지요.???



3  COMMENTS
  • Profile
    mafioso 2001.03.27 03:38
    우하하... 우선 제가 아는 질문이 있어서 뿌듯하네요.



    결론은

    OnClose 이벤트에서

    ==> Action := caFree;

    하시면 됩니다.



    폼이 MDI child 이면 caMinimize

    폼이 SDI 이면 caHide 가 기본값이기 때문에 메모리에서 지울려면

    반드시 caFree 하셔야 됩니다.



    델파이 도움말(TCustomForm.OnClose)을 보시면 아주 자세히 설명되어 있습니다.





    델파초짜.. wrote:

    > 아주 초보 적인 질문인듯 하지만

    > 저에게는 너무나 어려워서...

    > ^^;

    >

    > 폼을 닫을때.. 그냥 Close 를 시켰더니..

    > 폼이 메모리에서 지워지지 않는듯 하군요..

    > 비베에서 말하자면.. Hide(숨기기) 와 같은듯...

    > 다쉬 말해.. 폼을 Show 하고 Close를 하면.

    > 처음 Show 를 할때는 Form_Create 이벤트를 타는데..

    > Close 를 한후 다쉬 Show 를 하면 Create 이벤트를 타지 않습니다..

    > Close를 하면.. 폼은 안보이되.. 메모리에서는 지워지지 않는듯 한데요..

    >

    > 폼을 닫을때.. 메모리에서도 지워지게 닫고 싶은데요..

    > Free를 쓰니.. 실행은 돼는데.. 이 Free부분을 지날때.. 에러가 나는군요..

    > Destory 를 썼더니.. 아예 실해도 안돼는군요..

    >

    > 폼을 메모리에서 아예 지워버리려면 어떻게 해야 하지요.???

    >

  • Profile
    델파초짜.. 2001.03.27 03:47
    답변 감사 드립니다..

    그런데.. Action := caFree; 를

    OnClose 이벤트에 써 줬더니.. 닫기를 하면 폼이 닫이는데..

    다쉬.. 그 폼을 Show 하면.. 에러가 나는데요.. 혹시 이거 왜 그러는지도 아시는지..

    참고로 저는 SDI 폼을 사용합니다..

    검 이만..

    mafioso wrote:

    > 우하하... 우선 제가 아는 질문이 있어서 뿌듯하네요.

    >

    > 결론은

    > OnClose 이벤트에서

    > ==> Action := caFree;

    > 하시면 됩니다.

    >

    > 폼이 MDI child 이면 caMinimize

    > 폼이 SDI 이면 caHide 가 기본값이기 때문에 메모리에서 지울려면

    > 반드시 caFree 하셔야 됩니다.

    >

    > 델파이 도움말(TCustomForm.OnClose)을 보시면 아주 자세히 설명되어 있습니다.

    >

    >

    > 델파초짜.. wrote:

    > > 아주 초보 적인 질문인듯 하지만

    > > 저에게는 너무나 어려워서...

    > > ^^;

    > >

    > > 폼을 닫을때.. 그냥 Close 를 시켰더니..

    > > 폼이 메모리에서 지워지지 않는듯 하군요..

    > > 비베에서 말하자면.. Hide(숨기기) 와 같은듯...

    > > 다쉬 말해.. 폼을 Show 하고 Close를 하면.

    > > 처음 Show 를 할때는 Form_Create 이벤트를 타는데..

    > > Close 를 한후 다쉬 Show 를 하면 Create 이벤트를 타지 않습니다..

    > > Close를 하면.. 폼은 안보이되.. 메모리에서는 지워지지 않는듯 한데요..

    > >

    > > 폼을 닫을때.. 메모리에서도 지워지게 닫고 싶은데요..

    > > Free를 쓰니.. 실행은 돼는데.. 이 Free부분을 지날때.. 에러가 나는군요..

    > > Destory 를 썼더니.. 아예 실해도 안돼는군요..

    > >

    > > 폼을 메모리에서 아예 지워버리려면 어떻게 해야 하지요.???

    > >

  • Profile
    mafioso 2001.03.27 05:01
    처음에 질문하신 것과는 반대의 경우네요.

    Action := caFree; 하면 폼은 메모리에서 해제됩니다.

    고로 그 폼을 볼려면 다시 create 해야됩니다.

    create 하지 않고 show하면 access violation이 나겠지요.





    델파초짜.. wrote:

    > 답변 감사 드립니다..

    > 그런데.. Action := caFree; 를

    > OnClose 이벤트에 써 줬더니.. 닫기를 하면 폼이 닫이는데..

    > 다쉬.. 그 폼을 Show 하면.. 에러가 나는데요.. 혹시 이거 왜 그러는지도 아시는지..

    > 참고로 저는 SDI 폼을 사용합니다..

    > 검 이만..

    > mafioso wrote:

    > > 우하하... 우선 제가 아는 질문이 있어서 뿌듯하네요.

    > >

    > > 결론은

    > > OnClose 이벤트에서

    > > ==> Action := caFree;

    > > 하시면 됩니다.

    > >

    > > 폼이 MDI child 이면 caMinimize

    > > 폼이 SDI 이면 caHide 가 기본값이기 때문에 메모리에서 지울려면

    > > 반드시 caFree 하셔야 됩니다.

    > >

    > > 델파이 도움말(TCustomForm.OnClose)을 보시면 아주 자세히 설명되어 있습니다.

    > >

    > >

    > > 델파초짜.. wrote:

    > > > 아주 초보 적인 질문인듯 하지만

    > > > 저에게는 너무나 어려워서...

    > > > ^^;

    > > >

    > > > 폼을 닫을때.. 그냥 Close 를 시켰더니..

    > > > 폼이 메모리에서 지워지지 않는듯 하군요..

    > > > 비베에서 말하자면.. Hide(숨기기) 와 같은듯...

    > > > 다쉬 말해.. 폼을 Show 하고 Close를 하면.

    > > > 처음 Show 를 할때는 Form_Create 이벤트를 타는데..

    > > > Close 를 한후 다쉬 Show 를 하면 Create 이벤트를 타지 않습니다..

    > > > Close를 하면.. 폼은 안보이되.. 메모리에서는 지워지지 않는듯 한데요..

    > > >

    > > > 폼을 닫을때.. 메모리에서도 지워지게 닫고 싶은데요..

    > > > Free를 쓰니.. 실행은 돼는데.. 이 Free부분을 지날때.. 에러가 나는군요..

    > > > Destory 를 썼더니.. 아예 실해도 안돼는군요..

    > > >

    > > > 폼을 메모리에서 아예 지워버리려면 어떻게 해야 하지요.???

    > > >