AGB  ·  Datenschutz  ·  Impressum  







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

TStringList AddObjects

Ein Thema von MrSpock · begonnen am 13. Mai 2004 · letzter Beitrag vom 13. Mai 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#11

Re: TStringList AddObjects

  Alt 13. Mai 2004, 13:50
Achtung TList gibt die Objekte nicht frei. Due wurden höchstens durch Deine Anwendung automatisch freigegeben, aber nicht durch TList. Wenn man Objekte in einer Liste halten will, dann sollte man auf TObjectList (Unit Contnrs) zurückgreifen, die kann Objekte auch automatisch freigeben.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: TStringList AddObjects

  Alt 13. Mai 2004, 14:09
Zitat von MrSpock:
Hallo DP Gemeinde,

ich habe gerade einmal einen Test gemacht und war über das Ergebnis überrascht, vielleicht deswegen, weil ich bisher etwas falsch verstanden habe?

Ich habe zwei StringListen erzeugt. Anschließend erzeuge ich 1000 Objekte (TLabel) und weise sie mit AddObjects sowohl der StringList1 als auch der StringList2 zu. Anschließend lösche ich alle Objekte der StringList1 in dem ich explizit StringList1.Objects[i].Free für alle i's aufrufe. Wenn ich jetzt auf das Object über Stringlist2 zugreife, funktioniert das ohne Fehler! Ich dachte, dass die Objekte nur als Verweise gespeichert werden. Stimmt das nicht?


Eigentlich ist das zu erwarten, da du ja nur einen Verweis und nicht das Objekt in die StringListe Kopierst.

mit dem StringList1.Objects[i].Free zerstörst du das TLabel Objekt in deinem Fall. Damit zeigt der entsprechende Verweis von Stringlist2 natürlich auf ein nicht mehr existierendes Objekt.
Günter
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#13

Re: TStringList AddObjects

  Alt 13. Mai 2004, 14:31
Hallo GuenterS,

Zitat:
mit dem StringList1.Objects[i].Free zerstörst du das TLabel Objekt in deinem Fall. Damit zeigt der entsprechende Verweis von Stringlist2 natürlich auf ein nicht mehr existierendes Objekt.
Genau das war ja, was mich verwundert hat. Ich konnte eben trotzdem auf das eigentlich nicht mehr existierende Object über einen Verweis aus StringList2 zugreifen. Und genau das habe ich nicht erwartet!
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#14

Re: TStringList AddObjects

  Alt 13. Mai 2004, 14:44
@sakura, missverständnis

im Onclose der Anwendung gebe ich die objecte frei, alle, erst dann lösche ich die instanz der Tlist.

oder ist es für mich noch zu früh

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#15

Re: TStringList AddObjects

  Alt 13. Mai 2004, 14:48
Zitat von kiar:
@sakura, missverständnis
missverständnis, yepp. Ich hatte nicht rausgelesen, daß Du die Objekte expliziet frei gibst. Aber ansonsten schaue Dir (schaut Euch) mal TObjectList an, die nimmt Euch da eine Menge Arbeit ab

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#16

Re: TStringList AddObjects

  Alt 13. Mai 2004, 14:53
Hmm, mich würde das stören wenn bei Freigabe von TList auch die Objecte frei gegeben werden. Wenn ich beispielsweise in eine TList meine ganzen Buttons packe um diesen dann per schleife eigenschaften zu zuweisen, will ich doch nicht das nach freigeben von TList auch meine ganzen Buttons vom TForm verschwunden sind... Finds richtig das Tlist das nicht macht bzw Stringlist mit den Objects
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#17

Re: TStringList AddObjects

  Alt 13. Mai 2004, 15:32
was will uns der künstler damit sagen
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 06:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz