창(Form1)에서 다른 창(Form2)을 부를때 아래와 같이 하였습니다.
다른 창 부를때..
Form2 := TForm2.Create(Self);
Form2.Show;
이때 Project Options의 Option에서는
Auto-create forms에는 Form1만을 선택하고
Available forms에는 나머지를 선택(Form2)..
Form2를 닫을 때..
FormClose이벤트에는
Action := caFree;
FormDestroy이벤트에는
Form2 := nil;
위와 같이 코딩을 하고.
Form1에서 Form2를 부르고 메모리 체크를 하면(NT에서 작업관리자)
약 100 정도 늘었습니다.
그리고 Form2를 닫으면 메모리를 원래대로 돌리지 못하고 그대로 있습니다.
어떻게 해야지 원래대로 돌릴 수 있나요..?
Form2를 자주 열었다 닫으면 메모리가 가득차서 그런지.
리소스 부족이 됩니다.
감사합니다.
델파이의 폼역시 하나의 객체입니당.~
맞나....??
맞을겁니다.
객체에 할당된 메모리를 돌려 주려면 당연히 객체를 Free를
시켜줘여지영~
않그렇습니까?
그러니까...
try
Form2 := TForm2.Create(Self);
Form2.Show;
finally
Form2.Free;
end;
빈거울 wrote:
> 창(Form1)에서 다른 창(Form2)을 부를때 아래와 같이 하였습니다.
>
> 다른 창 부를때..
> Form2 := TForm2.Create(Self);
> Form2.Show;
>
> 이때 Project Options의 Option에서는
> Auto-create forms에는 Form1만을 선택하고
> Available forms에는 나머지를 선택(Form2)..
>
>
> Form2를 닫을 때..
> FormClose이벤트에는
> Action := caFree;
> FormDestroy이벤트에는
> Form2 := nil;
>
> 위와 같이 코딩을 하고.
> Form1에서 Form2를 부르고 메모리 체크를 하면(NT에서 작업관리자)
> 약 100 정도 늘었습니다.
> 그리고 Form2를 닫으면 메모리를 원래대로 돌리지 못하고 그대로 있습니다.
>
> 어떻게 해야지 원래대로 돌릴 수 있나요..?
>
> Form2를 자주 열었다 닫으면 메모리가 가득차서 그런지.
> 리소스 부족이 됩니다.
>
> 감사합니다.