Einzelnen Beitrag anzeigen

Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

AW: TStringList freigeben?

  Alt 22. Dez 2010, 18:00
Wie jetzt? Ist der Rückgabeparameter vom Typ TStringList oder verwendest du eine TStringList nur intern um einen Rückgabewert (String?) zu erstellen?

Edit:
Mal ein paar Vorlagen für die verschiedenen Fälle.

Hier, wenn eine Stringliste gefüllt werden soll. TStrings anstatt TStringList zu nehmen ist hier wohl besser bzw. allgemeiner.
Man muss sich um die Erzeugung oder Freigabe innerhalb der Funktion nicht kümmern, dafür aber außerhalb.
Delphi-Quellcode:
procedure ABC(AList: TStrings);
begin
  // Tue etwas mit AList
end;

Wenn sie nur intern benötigt wird.
Delphi-Quellcode:
function ABC: String;
var
  LList: TStringList;
begin
  LList := TStringList.Create;
  try
    // Tue etwas mit LList
    Result := LList.Text; // Wenn gewünscht
  finally
    LList.Free;
  end;
end;

Wenn sie von der Funktion erstellt und als Rückgabewert benutzt wird.
Dies ist aber glaube ich nicht so gerne gesehen. Man muss sich nach dem Aufruf dieser Funktion nämlich um die Freigabe der Stringliste kümmern.
Delphi-Quellcode:
function ABC: TStringList;
begin
  Result := TStringList.Create;
  try
    // Tue etwas mit Result
  except
    Result.Free;
    raise;
  end;
end;
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.

Geändert von Deep-Sea (22. Dez 2010 um 18:20 Uhr)
  Mit Zitat antworten Zitat