Unabhängig dessen was bereits p80286 geschrieben hat, ich persönlich mag folgende Funktionen nicht:
Delphi-Quellcode:
function leseAbschnittsKeys(...):TStrings;
...
Weder weil da etwas falsch ist (ist nicht), sondern weil man da leicht durcheinander kommen kann. Vor allem als Anfänger. Grund: das Create ist in der Funktion, das Free in der aufrufenden Prozedur. Und als ob wir uns abgesprochen hätten, fehlt die Freigabe auch in deinem Code. Guck dir mal mein Beispiel an, zumindest bis das einigermaßen drauf ist.
Noch paar Tipps.
Delphi-Quellcode:
namensListe := TStringList.Create;
namensListe.Clear;
Das Clear kannst du dir sparen. Eine neu erstellte Liste ist ja leer.
Delphi-Quellcode:
finally
namensListe.Clear;
Sollte das evtl ein .Free sein?
leseAbschnittsKeys := iniFile.ReadSections(namensListe);
Nicht falsch, aber Result := statt leseAbschnittsKeys := ist evtl. übersichtlicher.
Außerdem glaube ich, dass du hier eher die Adresse der iniFile übergibst. Evtl. AddStrings?
Und wo wir schon bei iniFile sind, die hast du vergessen wieder freizugeben.