TStringList를 Return하는 함수를 쓸때 그 Return하는 TStringList는 어떻게 Free시켜줘야 하나요.
예를 들면,
function TForm1.GetStrList(ToInt: Integer): TStringList;
var
i : Integer;
List : TStringList;
begin
List := TStringList.Create;
for i := 0 to ToInt do begin
List.Add(IntToSTr(i));
end;
Result := List;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetStrList(10).Text);
end;
이렇게 하면, List라는 TStringList는 계속 메모리에 할당되어 있는게 아닙니까?
그렇다고,
Result := List;
List.Free;
이렇게 하면, Return받는 쪽에서는 이미 해제된 StrList를 읽으려 하기 때문에,
Access Error가 나고,...
function Return이 TStringList일때는, 그 TStringList가 계속 메모리에 할당되어 있는건가요?