Форум: "Основная";
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];
ВнизФункция не возвращает TStringList Найти похожие ветки
← →
~Sergius (2002-01-27 02:29) [1]Разумеется, лист будет пустой при выходе из функции, а точнее, после вызова FList.Free;
Когда ты делаешь Result :=Flist, что это значит? Это значит, что фунция всего лишь возвращает указатель на твой FList, а вовсе не копирует весь лист из одной области памяти в другую. Для того, чтобы лист скопировать из одной области памяти в другую и указатель на эту новую область сохранить в другой переменной существует метод Assign. Но в данном случае это не нужно (неоптимально). Делается так:
function GetPasList:TStringList;
var FList: TStringList;
begin
FList:=TstringList.Create;
//.......
//наполняю
//......
Result:=FList;
Result.SaveToFile("C:\1.txt"); // Файла может и не быть :)
//Flist.Free; "нельзя
end;
А когда вызываешь функцию в другом месте:
var Lst: TStringList;
begin
try
Lst := GetPastList;
//
// делаешь со списком что нужно
//
finally
Lst.Free;
end;
end.
P.S. Пальца и яйца в солонку не совать! (c) Общепит
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.003 c