Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: TStringlist von function() zurückgeben - nicht möglich?

  Alt 10. Mai 2022, 18:41
Du arbeitest bei Objekten immer mit Pointern. Du gibst also nur die Adresse des Objektes zurück. Wenn das dann zerstört ist, kannst du damit auch nichts mehr anfangen.

Deshalb gibt man auch keine Objekte zurück. Erstellung und Freigabe eines Objekts sollten immer spiegelverkehrt an der gleichen Stelle passieren. (oben in einer Methode - weiter unten in der gleichen Methode, Konstruktor - Destruktor, ...)

Hier geht das dann so:
Delphi-Quellcode:
procedure FillMyList(const AList: TStrings);
begin
  AList.Add('A');
  AList.Add('B');
end;

// Verwendung:
var
  Test: TStringList;
begin
  Test := TStringList.Create;
  try
    FillMyList(AList);
    ShowMessage(AList[0]);
  finally
    Test.Free;
  end;
end;
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat