Dann erzähl mir mal, wo hier ein Fehler auftreten soll, der s1.free überspringt?
Delphi-Quellcode:
function TForm1.CreateAutorunFile(app, icon, destfile: String): boolean;
var
sl: TStringList;
begin
result:=true;
sl:=TStringList.create;
sl.add('[autorun]');
sl.add('OPEN='+app);
sl.add('ICON='+icon);
if copy(destfile, length(destfile)-4, 4)<>'.inf' then destfile:=destfile+'.inf';
try
sl.SaveToFile(destfile);
except
result:=false;
end;
sl.free;
end;
Weil:
Delphi-Quellcode:
result:=true;
sl:=TStringList.create;
sl.add('[autorun]');
sl.add('OPEN=' + app);
sl.add('ICON=' + icon);
if copy(destfile, length(destfile) - 4, 4) <> '.inf' then destfile := destfile + '.inf';
Hier KANN nichts passieren und das Schreiben ist schon durch ein try abgesichert...