Moin Frederic,
Zitat von
fkerber:
Im Prinzip macht der Compiler da ja nen Fehler rein, oder?
eigentlich nicht.
Der Try-Abschnitt wird, bei normalem Programmablauf, immer durchlaufen, und somit Result dort gesetzt.
Es spielt hierbei auch keine Rolle, ob es sich nun um einen Try/Finally oder einen Try/Except Block handelt.
Da Result nur im Fehlerfalle auf false stehen soll, müsstest Du es so machen, wie Himitsu es vorgeschlagen hat.
Ich würde hier allerdings auch noch einen try/finally Block ergänzen, damit auch im Falle eines Fehlers das Inifile-Objekt wieder freigegeben wird.
Delphi-Quellcode:
function DeleteUser(user: String): Boolean;
var
Identities: TIniFile;
begin
Result:=True;
Identities:=TIniFile.Create(ExtractFilePath(paramstr(0))+'\Identities.dat');
try
Try
Identities.EraseSection(user);
Except
Result:=False;
end;
finally
Identities.Free;
end;
end;