PageControl에 동적으로 TabSheet을 여러게 생성하고
그중 하나를 삭제하려고 하는데요
물론 TabSheet 속에는 여러 컴포넌트가 생성됩니다.
예로 리치에디터만 생성할 경우
리치에디터를 생성할 때 부모인자에 TabSheet을 넣고요
RichEdit.Parent := TabSheet;
문제는 이 TabSheet을 삭제할때
FreeAndNil(TabSheet);
PageControl.Pages[PageControl.ActivePageIndex].Destroy;
이렇게 하면 access violation 에러가 납니다.
리치에디터를 생성하지 않고 TabSheet만 생성하고 삭제할경우에는
PageControl.Pages[PageControl.ActivePageIndex].Destroy;
라고 해도 별 문제가 없는것을 보면
리치에디터를 삭제하지 못하는거 같은데 어떻게 해야 하나요?
답변 부탁드려요 (__);
Destroy를 직접적으로 호출하시는 것은 별로 안좋은 방법입니다. 대신에 Free메소드를 사용하세요... 아래와 같이 하시면 될거 같네요...
if PageControl.ActivePageIndex <> -1 then
begin
PageControl.Pages[PageControl.ActivePageIndex].Free;
end;
^^ 항상 즐코하세요...