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

Delphi 폼 생성과 해제.

2019.09.29 19:59

엽기토끼이요 조회 수:482

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

 

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 16104
공지 유용한 관련 사이트 관리자2 2014.03.20 54930
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 98392
853 [질문] 리오 10.3.1에서 FastReport를 설치할 수 없습니다. [2] 델사냥 2019.02.20 481
852 Ble 기기 스캔 질문 [1] 민은기 2015.04.16 481
» 폼 생성과 해제. [2] 엽기토끼이요 2019.09.29 482
850 [XE8 출시세미나] 구글글래스 앱을 만들어야 하는 프로젝트가 있습니다. 델파이로 개발할 수 있나요? [1] 관리자 2015.04.30 483
849 핸드폰에서 이미지를 불러서 저장하는 부분을 잘몰라서요 [4] 종결자 2019.10.01 484
848 애플앱 등록시 에러나는 경우 silkroad99 2015.08.25 485
847 Android에서 Wifi Scan하기 위한 TJBroadcastReceiver를 어떻게 구현해야 하나요? [1] 개성산전 2019.03.18 485
846 [IoT 세미나] 비콘 배터리는 얼마나 가나요? Humphery 2015.09.03 486
845 class EOleSysError 문제 file 김준수 2021.06.23 486
844 uses절 추가 에러 문의드립니다 [2] syc 2016.08.17 487
843 급) 우분투 17.04 PAServer 실행 오류~ 확인 부탁 드립니다. [2] file 별땅땅쫑 2017.11.23 487
842 스마트폰 앱에서 report 만드는 방법 문의 김하나 2017.07.19 489
841 컴파일 시 "Object reference not set to an instance of an object" 오류가 발생합니다. file 험프리 2017.01.19 490
840 재질문 Push 알림 한글깨짐 문의 [1] file 사랑남 2015.09.25 492
839 SDK Manager에서 "Update Local File Cache" 후 Directory does not exist: /...../clang/7.0.0/ 오류가 발생합니다. [2] kerry 2016.02.22 493
838 Delphi10.2 용 평가판에서 BDE Install 프로그램(dclbde***.bpl) [1] hihee 2018.06.07 494
837 DBExpress 와 MySQL 연결관련 문의 [1] file 대화마을 2017.06.08 496
836 콤보박스를 바인딩에서 연결하는 방법을 알려주세요. [2] file 거북이 2015.10.23 496
835 Webbrowser에서 오픈시 과거 데이타를 가져오는 듯한 느낌은? [4] 화이부동 2016.12.06 497
834 RAD 스튜디오 베를린 10.1에서 Graphics32 지원하나요? [2] Bishop 2016.12.19 497