Привет всем! Немогу понять почему происходит утечка памяти и утечка памяти ли это вообще... Подскажите плиз...
Есть функция GetFileList которая возвращяет список файлов в директории...
Она вызывается по таймеру и следит тем самым что содержание директории изменилось...
Если посмотреть в списке процессов то видно что память занимаемая процессом постоянно растёт... Если закоментировать строку вызывающюю функцию то размер программы увеличивать перестаёт...
Подскажите почему это может происходить? И вообще когда делфи уничтожает екземпляры класса? После выхода из функции? И что происходит в строке запуска функции, происходит копирование или DncList просто получает адресс уже созданного екземпляра класса и где про ето почитать... Заранее спасибо за ответы...
Вызываеться таким образом (лишнее я выкинул):
procedure TFormShablon.TimerTestFolderTimer(Sender: TObject);
var DncList:TStringList;
begin
DncList:=GetFileList('c:\123','*.*');
end;
Сама функция:
Function GetFileList(dir:string='';mask:string='*.*';attr:integer=faAnyFile):TStringList;
var res:cardinal;s:tsearchrec;
begin
result:=TStringList.Create;
if dir='' then dir:=GetCurrentDir;
res:=FindFirst(dir+'/'+mask,attr,s);
while res=0 do begin
result.Append(s.Name);
res:=FindNext(s);
end;
end;