AGB  ·  Datenschutz  ·  Impressum  







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

free erzeugt Fehler

Ein Thema von fui-tak · begonnen am 11. Jul 2010 · letzter Beitrag vom 12. Jul 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#11

AW: free erzeugt Fehler

  Alt 11. Jul 2010, 18:44
Der Spruch "Es kann nur Einen geben", trifft halt an vielen Stellen zu.

Wenn du über das Array die Objekte freigeben willst, dann ist das Array, bzw. sind die einzelnen Felder quasi der Owner ihrer zugeordneten Objekte.
Tja, und bei Objekten darf es halt nur einen Besitzer geben, welcher für die Freigabe zuständig ist, es sei denn die anderen "owner" werden beim Löschen benachrichtigt, daß das gelöschte Objekt nun weg ist und sie es aus ihrer Liste entfernen sollen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: free erzeugt Fehler

  Alt 11. Jul 2010, 18:46
Eine Objektliste kann Eigentümer der Objekte sein, aber ein Array?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#13

AW: free erzeugt Fehler

  Alt 11. Jul 2010, 18:51
Ob du nun einer Objektliste sagst, sie solle sich um das Löschen kümmern
oder ob man sich selber bei einer Liste/Array um das Löschen kümmer,
ist hierbei unbedeutend.

Der Owner ist einfach nur für die Freigabe/Löschen zuständig ... egal, wer da nun löscht.

Hier ist es halt so, daß 2 Felder des Arrays dafür zuständig gemacht wurden ... das kommt auf's Selbe raus, als wenn man dieses Objekt zweimal in eine Objektliste stecken würde und diese dann alles freigeben soll.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (11. Jul 2010 um 19:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

AW: free erzeugt Fehler

  Alt 12. Jul 2010, 09:32
Hallo,

eine Möglichkeit wäre es doch vor dem Free erst mal alle Einträge auf "gleichheit" zu prüfen und nur die in eine Zu-Löschen-Liste zu packen die nicht identisch sind. Diese wird dann eben durchlaufen und deren Objekte frei gegeben.

Nur so anbei.

Greez, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: free erzeugt Fehler

  Alt 12. Jul 2010, 09:43
Benutze eine separate TObjectList (OwnsObjects auf True) um dort die Level-Instanzen zu speichern.
In deinem Array kannst du dann diese Instanzen sooft verwenden wie du möchtest.
Beim Beenden des Programms einfach nur die TObjectList mit Free aus dem Speicher entfernen und der Drops ist gelutscht.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#16

AW: free erzeugt Fehler

  Alt 12. Jul 2010, 11:40
http://www.delphipraxis.net/152901-m...ml#post1034913
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
fui-tak

Registriert seit: 24. Okt 2008
117 Beiträge
 
Turbo Delphi für Win32
 
#17

AW: free erzeugt Fehler

  Alt 12. Jul 2010, 12:47
Danke an alle für die flotten Antworten!!

Ich habe jetzt die Lösung von Sir Rufo mit der TObjectList gewählt und es klappt ohne Probleme
  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 03:22 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