Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Problem mit einer Stringlist

  Alt 11. Jan 2007, 08:21
1. Gib mal den Pointer der Tstringlist mit const (statt var) über. Ich bin mir zwar nicht sicher, ob das wirklich einen Unterschied macht. Ich finds besser.

2. Stell dir vor du erstellst die Liste an Adresse A.
Dann übergibst du diese Adresse an Result (also steht in Result A drinn). Soweit ist alles klar. Jetzt löschst du die liste mit lst.free. Result zeigt immer noch auf A, aber dort steht nix mehr drinn.
--> Lass mal das Löschen(freigeben) weg. Das machst du besser nachdem du das Result in der aufrufenden Funktion verarbeitet hast.
Besser ist noch du benutzt von anfang an Result:
Delphi-Quellcode:
function TBauteilListe.GetLines: TStringlist;
...
begin
  Result := TStringList.Create;
  Result.Clear; //ist denk ich nicht zwingend notwendig
  Rekursiv(FRoot,Result);
  //free übernimmt die aufrufende Funktion
end;
...
//Aufrufende Funktion:
var ergebnis:TStringlist;
begin
  ergebnis:=getlines;
  // mit ergebnis arbeiten
  ergebnis.free;
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat