Wenn ich dein Beispiel nehme und selber noch eine Files-Array erstelle (Array of String), bekomme ich keine Memoryleaks. Also muss irgendwas im Beispiel noch fehlen, das wir nicht wissen.
Mein Testcode ohne Memoryleaks. Wenn ich Testeshalber das FreeAndNil rausnehme, habe ich wie erwartet ein Memoryleak.
Delphi-Quellcode:
Im
DPR: ReportMemoryLeaksOnShutdown := True;
procedure TForm1.FormCreate(Sender: TObject);
var
FileName:
string;
SplitPath: TstringList;
s:
Array of String;
begin
SetLength(s, 2);
s[0] := '
c:\asfdsdf\sdf';
s[1] := '
c:\asfds2df\s2df';
SplitPath := TStringList.Create;
try
SplitPath.StrictDelimiter:= true;
SplitPath.Delimiter := '
\';
SplitPath.DelimitedText := ExtractFilePath(s[0]);
SplitPath.DelimitedText := '
';
// bringt nichts
SplitPath.Clear;
// auch nichts
finally
FreeAndNil(SplitPath);
end;
end;