자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey 프레임 동적생성후 해제 (메모리 해제가 안되는현상)
2014.06.06 01:18
안녕하세요.
가을이다 입니다.
XE5로 어플테스트중, 이상한점이 있어서 글남겨봅니다~
여러개의 폼이 많이 필요해, 프레임(Frame) 으로 구성할려다보니, 프레임을 많이 만든후에
미리폼위에 올리지않고, 구동중, 동적으로 생성해서 폼위에 배치하는것까지 잘됩니다.
그런데, 해제하는것이 잘 안되네요.
예를 들어 a버튼으로 프레임을 생성하고 화면에 보이고, b버튼으로 해제한다고 했을때
해제할때에..
(1)
frame_test.Parent := nil;
frame_test := nil;
(2)
frame_test := nil;
frame_test.Free;
(3)
frame_test := nil;
frame_test.Destroy;
위와같은 여러가지 방법으로 해도, 화면에서는 해제되는것같이 없어지지만 메모리에는 해제가
안되네요.. 프레임위에 1메가 정도의 이미지를 올려놓고 메모리 해제가 되는지 테스트해봤습니다.
정상적으로 해제시키는 방법이 없을까요?
만약, 프레임이 10개 이상 된다면... 해제를 시키지 않으면 메모리가 점점 쌓이기 때문에 동적으로 생성한
프레임은 꼭 메모리에서 해제시켜야 할 것 같습니다..
좋은방법 있으시면 부탁드리겠습니다 ^^..
댓글 2
Firemonkey 프레임 동적생성후 해제 (메모리 해제가 안되는현상)
2014.06.06 01:18
안녕하세요.
가을이다 입니다.
XE5로 어플테스트중, 이상한점이 있어서 글남겨봅니다~
여러개의 폼이 많이 필요해, 프레임(Frame) 으로 구성할려다보니, 프레임을 많이 만든후에
미리폼위에 올리지않고, 구동중, 동적으로 생성해서 폼위에 배치하는것까지 잘됩니다.
그런데, 해제하는것이 잘 안되네요.
예를 들어 a버튼으로 프레임을 생성하고 화면에 보이고, b버튼으로 해제한다고 했을때
해제할때에..
(1)
frame_test.Parent := nil;
frame_test := nil;
(2)
frame_test := nil;
frame_test.Free;
(3)
frame_test := nil;
frame_test.Destroy;
위와같은 여러가지 방법으로 해도, 화면에서는 해제되는것같이 없어지지만 메모리에는 해제가
안되네요.. 프레임위에 1메가 정도의 이미지를 올려놓고 메모리 해제가 되는지 테스트해봤습니다.
정상적으로 해제시키는 방법이 없을까요?
만약, 프레임이 10개 이상 된다면... 해제를 시키지 않으면 메모리가 점점 쌓이기 때문에 동적으로 생성한
프레임은 꼭 메모리에서 해제시켜야 할 것 같습니다..
좋은방법 있으시면 부탁드리겠습니다 ^^..
frame_test.parent := nil;
frame_test.DisposeOf; // frame_test.free;를 사용해도 되지만 ARC 환경에서는 DisposeOf 사용을 권장합니다.
frame_test := nil;
프레임의 다양한 사용법은 데브기어 모바일 고급교육과정에 마련되어 있으니 참석해보시면 좋을 것 같습니다.
http://www.devgear.co.kr/edu