Zitat:
procedure LeseDaten(const: KundenNummer: out: KundenSatz: TStringList);
Wenn, dann ohne OUT.
Du gibst eine Instanz rein und die Funktion füllt sie nur.
Und nimm TStrings als Parameter, dann kann man irgendeinen TStrings-Nachfahren übergeben und ist nicht gezwungen immer nur TStringList zu nehmen.
z.B. Memo.Lines (das ist intern ein TMemoStrings).