안녕하세요.
메모리루수를 테스트하려고 빈폼에 빈 프레임을 추가하고 프레임의 create, destroy를 override 했습니다.
type
TFrame2 = class(TFrame)
private
{ Private declarations }
public
{ Public declarations }
constructor create(aowner : TComponent); override;
destructor destroy; override;
end;
implementation
{$R *.dfm}
constructor TFrame2.create(aowner: TComponent);
begin
inherited;
ShowMessage('constructor');
end;
destructor TFrame2.destroy;
begin
ShowMessage('destructor');
inherited;
end;
이걸 실행하니 destroy통보가 나오지 않고 오류통보가 뜨는데요.
memproof로 테스트해보면 버
오류와 메모리 릭이 발생하였다면 재대로 죽지 못한겁니다. TFrame의 생성시킨 Owner가 Destroy되기전에 TFrame을 먼저 Destroy해보세요. 예를 들어 TFrame의 생성시킨 Owner폼의 Close이벤트에서 pTFrame2.Destroy; (변수 pTFrame2 : TFrame2; 일 경우)을 해보십시요