![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Когда освободиться TStrings ? [D7, XP]
Альф © (2009-05-13 10:40:00)Простите за немножко дурацкий вопрос :)
Ситуация такая - есть функция вида
function CreateStringList(const Value: string): TStrings;
var
i: integer;
begin
result := TStringList.Create();
try
// Тут заполняем список в зависимости от условий
for i := 0 to 9 do result.Append(IntToStr(i));
except
result.Free();
raise;
end;
end;
При таком вызове понятно когда создастся и освободиться список из CreateStringList
var
sl: TStrings;
begin
sl := CreateStringList('*.txt');
Memo.Lines.Assign(sl);
sl.Free();
end;
А вот когда освободиться этот список при таком вызове ?
Memo.Lines.Assign(CreateStringList('*.txt');
Альф (2009-05-13 11:01:00) [21]Т.е. список "уходит в закат" и компилятор, получается, никак не отслеживает такие ситуации...
Palladin (2009-05-13 10:44:00) [22]Никак.
Григорьев Антон (2009-05-13 10:42:00) [23]
> А вот когда освободиться этот список при таком вызове ?
При завершении программы. Да и то деструктор так и не будет вызван.