Einzelnen Beitrag anzeigen

Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.018 Beiträge
 
Delphi 2009 Professional
 
#9

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

  Alt 10. Mai 2022, 19:08
In Delphis eigenem Quelltext werden Argumente niemals als const deklariert, bei denen eine Klasse übergeben wird. Ist für Typen, die nicht größer sind als Pointer/NativeInt aber nicht so wichtig.

Ansonsten ist jaenickes Antwort richtig: Objekte wird man i.a.R. nicht in Funktionen zurück. Davon gibt es zwei Ausnahmen:
* Getter einer Klasse (Funktionen, die eine Eigenschaft zurückgeben). Der Speicher des zurückgegebenen Objekts wird weiterhin von der Klasseninstanz des Getters verwaltet, weshalb man das Ergebnis des Getters nicht selbst freigeben darf. Kennt man von TListBox.Items, TMemo.Strings, TComboBox.Items.
* Konstruktoren. Dann heißt das Ergebnis nicht Result (oder Methodenname) sondern Self (kann man auch weglassen):
Delphi-Quellcode:
type TMeineStringList = class(TStringList)
  constructor Create(sa, sb: TStringList);
end;

constructor TMeineStringList.Create(sa, sb: TStringList);
begin
  inherited Create();
  Self.Add(sa[0] + sb[0]);
end;
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat