자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

Delphi 폼 생성과 해제.

2019.09.29 19:59

엽기토끼이요 조회 수:475

안녕하세요. 저번에 질문을 올렸는데 이해가 안 되서 또 질문을 합니다...

 

https://opentutorials.org/course/3108/19310

험프리님이 말씀해주신데로 그대로 따라해 보아도. 메모리가 처음 시작 그 용량으로 돌아오질 않습니다.

 

저번에 답 주신 김원경 선생님의 말대로 폼 변수는 생성하지 않았습니다.

또, 동적 생성될 폼을 Availalbe forms으로 변경했습니다.


코드 입니다.

 

메인 폼의 폼 동적 생성 이벤트. (하나의 폼을 500회 생성 후 클로즈 이벤트 발생)

procedure TForm_Main.Button3Click(Sender: TObject);

var

  i : integer;

begin

  for i := 0 to 500 do begin

    Form1 := TForm1.Create(Nil);

    Form1.Show;

 

    Form1.Close;    //이것만 썻을 때는 모든 폼이 생성된 후에 모든 폼이 다같이 종료.

//    Form1.Free;   //이것도 같이 쓰면 생성 즉시 폼이 제거.

  end;

end;

 

동적 생성폼(Form1)의 클로즈 이벤트.

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

  Action := CaFree;

  Self := Nil;

end;


500회를 다 돌고나면 메모리 용량이 조금 줄어들기는 하는데 처음 실행시 용량으로 돌아가지 않습니다. 

(메모리 확인은 작업관리자의 사용자 탭에서 메모리 카테고리에서 확인 했습니다.)

(추가로 작업 관리자 - 성능 - 리소스 모니터 - 메모리 탭에서도 메모리 사용량을 확인 했습니다. )

 

최초 실행시 1.9MB

500회 실행 후 3.5MB (실행 중간에는 4.0MB까지 증가)

2회 500회 실행 후 3.5MB (실행시 용량이 증가하나 종료된 후에 3.5MB로 돌아옴)

 

제가 원하는 것은 최초 실행시 1.9MB로 돌아가게끔 설계를 하고 싶은데... 1회 실행 후의 용량이 당연한 결과인가요?

제 추측으로는 500회 생성된 변수들이 사라지지 않고 재사용 되고 있기 때문에 3.5MB로 유지되는걸로 보입니다. 메모리에서 완전 해제하는 방법이 없는 것인가요?

 

여러군데 뒤져봐도 생성까지만 설명을 하고 해제에 대해서는 자세한 설명이 없어서 헤메고 있습니다.

귀찮게해드려서 죄송합니다... 너무 궁금한데 물어볼곳이 마땅히 없네요...

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 15767
공지 유용한 관련 사이트 관리자2 2014.03.20 54580
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 97988
1653 Listview에서 DynamicAppearance를 이용하여 아이템을 만드는데 궁금한점이 있어서요. [4] file 종결자 2019.10.10 636
1652 DLL 내부에서 FireDAC 을 이용해서 FireBird DB 연결 종료 시 [2] 막스뮐러 2019.10.22 308
1651 ADO Query -> FD Query 마이그레이션 문의합니다. [3] file mckim 2019.10.22 337
1650 델파이 10.2 도쿄에서 comport가 실행이 안되는 이유는 무엇일까요? [2] file 덩어리2 2019.10.21 303
1649 RAD Studio 10.3 비콘관련 문의드립니다. [3] 정은은은 2019.05.14 348
1648 작일 세미나에서 문의드렸던 FireDac 모니터링 관련. [2] mckim 2019.10.18 437
1647 델파이에서 POST방식으로 IE 새창 호출 [1] 델파이PHP초보 2019.10.11 559
1646 listview 에서 런타임에 이미지 넣는부분 [1] 종결자 2019.10.12 322
1645 Delphi 10.2 Pointer, Byte 문의 [1] 엘트 2019.10.11 147
1644 NetHTTPClient1 오류 질문입니다. [2] file 델파이안드로이드 2019.10.17 274
1643 Delphi5 oracle 18c 호환 [2] file 비니 2019.10.07 490
1642 TValue를 어떻게 사용할 수 있는지 문의 드립니다. [2] 한태수 2019.10.14 2413
1641 Delphi7 횟수재한 [1] 모든길 2019.10.08 175
1640 TParallel.For 코어 사용 이게 맞나요? [2] file 아크나톤 2019.09.30 281
1639 폰트다이얼로그 관련 질문드립니다.. 초보델팡이 2019.10.08 679
1638 바탕화면 bds 실행 아이콘 이미지가 안보입니다. [1] file 거북선생 2019.10.07 230
» 폼 생성과 해제. [2] 엽기토끼이요 2019.09.29 475
1636 rest api 사용해서 할때. [4] 종결자 2019.10.03 407
1635 [긴급]안녕하세요 컴포넌트 오류에 대하여 질문을 드립니다. [3] file 소선 2019.10.04 380
1634 StringGrid 의 이미지 넣은 후 해제 하는 질문 입니다. [4] 초보델팡이 2019.09.30 134