AGB  ·  Datenschutz  ·  Impressum  







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

[ERLEDIGT] Freigabe von übergebenen Objekten

Ein Thema von mytar · begonnen am 13. Aug 2004 · letzter Beitrag vom 13. Aug 2004
Antwort Antwort
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#1

[ERLEDIGT] Freigabe von übergebenen Objekten

  Alt 13. Aug 2004, 11:55


Es gibt in Delphi Klassen welchen man erzeugte Objekte übergibt
(z.b.: über Konstruktor-Parameter). Könnnt ihr mir einige Beispiele nennen?

Wer gibt diese Objekte wieder frei?

Muss ich das machen, oder besitzt die Empfängerklasse des übergeben Objekts
properties über welche man eine automatische Freigabe bestimmen kann?

greetz
mytar
Francis Obikwelu
  Mit Zitat antworten Zitat
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#2

Re: Freigabe von übergebenen Objekten

  Alt 13. Aug 2004, 13:12
Hallo mytar,
ich versuche mal vorsichtig, Deine Frage zu beantworten.
Also, wenn Du ein Objekt an ein anderes Objekt oder an
eine andere Klasse übergibst, dann geschieht dieses
durch Objekt1 = Objekt2, was eine Referenz darstellt
(Kopien von Objekten würde man mit der ASSIGN-Methode
des TPersistent realisieren).

Alle Objekte, die beim Start Deines Programms bereits verfügbar
sind (Buttons, Images, etc.) dürfen von Dir NICHT freigegeben
werden, da dies implizit ohnehin geschieht, wenn das Programm
beendet wird.
Alle Objekte, die Du selbst erstellst (TObject.create)
musst Du, anders als bei C++, wieder mit <Objekt>.Free freigeben.

Wenn Du Dir allerdings ein bestehendes TImage in Deine eigene Klasse
kopierst (also ohne externe Referenzen), dann musst Du dafür sorgen,
dass Du am Ende Deine Kopie des Objektes wieder selbs
freigibst (free).
War das in etwa die Antwort auf Deine Frage?
  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
 
#3

Re: Freigabe von übergebenen Objekten

  Alt 13. Aug 2004, 13:53
Würde sagen, das ist von Fall zu Fall unterschiedlich und kann nicht so pauschal erklärt werden.

Mußt darauf achten wer das Object erzeugt und was Du damit machst...
Günter
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Freigabe von übergebenen Objekten

  Alt 13. Aug 2004, 17:26
Zitat von Dannyboy:
War das in etwa die Antwort auf Deine Frage?
Danke Dannyboy, aber das ist nicht die richtige Antwort die sich suche.

Warscheinlich habe ich das ganze schlecht erklärt.

Ich versuchs nochmal:
Es gibt in Delphi Klassen welchen man beim Konstruktoraufruf bestimmte Argumente übergeben muss.
Oft ist das eine Instanz einer anderen Klasse.

Meine Frage:
Ich kann diese übergebene Instanz nach Beendigung der Empfängerklasse selbst freigeben.
Gibt es aber eine Eigenschaft, welche bestimmt ob die Instanz von der Empfängerklasse
automatisch freigeben wird, oder nicht (vermutlich müsste es als eine Boolean-property) sein.

greetz
mytar
Francis Obikwelu
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Freigabe von übergebenen Objekten

  Alt 13. Aug 2004, 17:48
Redest du von TObjectList? Wenn ja dann werden beim freigen, eben dieser, auch alle unterobjekte freigegeben, sofern OwnsObjects = true ist, was aber die stadnard einstellung ist.
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Freigabe von übergebenen Objekten

  Alt 13. Aug 2004, 17:51
Danke!

Heißt diese property auch bei anderen Klassen OwnsObject,
oder ist das sozusagen der Standardname für diese Operation?

mytar
Francis Obikwelu
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Freigabe von übergebenen Objekten

  Alt 13. Aug 2004, 18:25
Hi,

so eine Eigenschaft gibt's bei den wenigsten Klassen.

Ob eine Klasse die übergebenen Objekte freigibt oder ob du das machen musst (und darfst) ist von Klasse zu Klasse verschieden. Eine pauschale Antwort kann man hier nicht geben.
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Freigabe von übergebenen Objekten

  Alt 13. Aug 2004, 18:35
Danke, für eure Hilfe!

Also [Erledigt]!

greetz
mytar
Francis Obikwelu
  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
 
#9

Re: Freigabe von übergebenen Objekten

  Alt 13. Aug 2004, 18:47
TObjectList hat zum Beispiel so eine Eigenschaft, ist aber ansonsten von Objekt zu Objekt verschieden.

Also nein es gibt kein generelles Property das Anzeigt wer was freigeben muss oder nicht.


[Edit] Zu langsam, hat das Essen doch zu lange gedauert. [/Edit]
Günter
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:47 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