AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringList - AddObject-Problem

Ein Thema von emploi · begonnen am 29. Mär 2005 · letzter Beitrag vom 3. Sep 2015
 
general-e

Registriert seit: 1. Jun 2005
Ort: Kamen
5 Beiträge
 
Delphi XE Enterprise
 
#7

AW: TStringList - AddObject-Problem

  Alt 3. Sep 2015, 09:06
Hallo,

auch, wenn das Thema schon seeeehhhr alt ist, wollen wir ja für alle spätern Leser eine Lösung bereitstellen:

In ermittle_geschwister wird eine Stringlist mylist erzeugt, an result zugewiesen und wieder freigegeben. Da Objekte immer als Referenz übergeben werden, wird damit auch das result freigegeben, da es die Stringliste nur einmal gibt.
Du musst das Freigeben des Ergebnisses immer außen machen:

Delphi-Quellcode:
function TMensch.ermittle_geschwister: TStringlist;
var
    i: Integer;
begin
    IF self.Kinder.Count = 0 THEN
    BEGIN
      exit;
    END;
    TRY
       result := TStringList.Create;
       FOR i:=0 TO self.Kinder.Count-1 DO
          result .Add(self.Kinder.Strings[i]);
    Except ON E: Exception DO
    END;
end;

procedure TForm1.Button1Click(Sender: TObject);
var geschwister:Stringlist;
begin
     Vater := TMensch.Create('Steffen');
     Vater.Maennlich := true;
     Mutter := TMensch.Create('Kathrin');
     Mutter.Maennlich := False;
     Kind := Mutter.erzeuge_kind(Vater,'Philipp');
     geschwister := Vater.ermittle_geschwister;
     if assigned(geschwister) then
     try
       showmessage(geschwister.Text);
     finally
       freeAndNil(geschwister);
     end;

end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz