Q&A

  • treeview 메모리에서 해제 시키기
아 하나가 해결되면 다른 하나가 말썽이군요....



버튼을 클릭하면 그(treeview가 포함된)폼이 닫히는데

메모리에서 어떻게 해야 완전히 해제가 될까요...

form1.close;

form1.free; //요렇게 하면 안 되나여...

다시 들어올 때 항상 그 리스트가 한번 씩 증가하는 문제 때문에

그러거든여...메모리 때문이라는...



감사합니다....

꼭좀 답해 주세여....

하루에 하나씩....모두들 열심히 즐코하세여...

4  COMMENTS
  • Profile
    타락천사 2000.11.04 01:53
    안녕하세여..타락임다..^^



    폼의 OnClose 이벤트에



    Action := caFree



    를 코딩하세여..^^



    즐푸하세여..^^



    타락천사...



  • Profile
    youngae 2000.11.04 02:18
    타락천사 wrote:

    > 안녕하세여..타락임다..^^

    >

    > 폼의 OnClose 이벤트에

    >

    > Action := caFree

    >

    > 를 코딩하세여..^^

    >

    > 즐푸하세여..^^

    >

    > 타락천사...

    >

    그렇게 하구나서여.폼이 닫히구

    이전 폼에서 다시 들어가려구 하니까

    violation at address 00010001 .write of address 01A0BE94

    error가 뜨거든여...왜 그렇죠??

  • Profile
    타락천사 2000.11.04 03:18
    안녕하세여..타락임다..^^



    다시 한번 닫힌 폼으로 돌아가려고 하면 당근 Access violation이 발생해여..



    왜냐면, 그 코딩은 해당 윈도우의 인스턴스(쉽게말해, 할당된 메모리)를 해제하거든여.



    어드레스만 있는 클래스를 참조하려고 하면,



    델파이의 경우엔 Access violation이 발생합니다.



    질문가지고 잘 모르겠지만,,



    제 생각에 MDI에서 자식폼을 만드는 상황 같은데여..



    여하튼 Action := caFree 는 그 폼을 사용할수 없게 만듭니다.



    다시 그 폼을 쓰려면 윗줄의 코드를 빼야합니다.



    글구 폼에 놓인 TreeView1만 없애려면, 아마두..



    SendMessage(TreeView1.Handle, WM_CLOSE, 0, 0) 하는게 가장 확실할겁니다..



    즐푸하세여..^^



    타락천사..



  • Profile
    youngae 2000.11.04 06:35
    타락천사 wrote:

    > 안녕하세여..타락임다..^^

    >

    > 다시 한번 닫힌 폼으로 돌아가려고 하면 당근 Access violation이 발생해여..

    >

    > 왜냐면, 그 코딩은 해당 윈도우의 인스턴스(쉽게말해, 할당된 메모리)를 해제하거든여.

    >

    > 어드레스만 있는 클래스를 참조하려고 하면,

    >

    > 델파이의 경우엔 Access violation이 발생합니다.

    >

    > 질문가지고 잘 모르겠지만,,

    >

    > 제 생각에 MDI에서 자식폼을 만드는 상황 같은데여..

    >

    > 여하튼 Action := caFree 는 그 폼을 사용할수 없게 만듭니다.

    >

    > 다시 그 폼을 쓰려면 윗줄의 코드를 빼야합니다.

    >

    > 글구 폼에 놓인 TreeView1만 없애려면, 아마두..

    >

    > SendMessage(TreeView1.Handle, WM_CLOSE, 0, 0) 하는게 가장 확실할겁니다..

    >

    > 즐푸하세여..^^

    >

    > 타락천사..

    >

    하하 해결 했습니다...

    나의 상상력과 타락천사님의 정성어린 답변으로...

    그걸 avabliable form에다가 추가 시키구 나서

    application.createForm(TForm1,Form1);

    form1.show;

    하니까 되더라구여....

    흑흑흑

    감사 또 감사 하시고

    돌아오는 주말 잘 보내시길