AGB  ·  Datenschutz  ·  Impressum  







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

freigeben?

Ein Thema von Pseudemys Nelsoni · begonnen am 18. Okt 2004 · letzter Beitrag vom 18. Okt 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

freigeben?

  Alt 18. Okt 2004, 05:47
hi,

wenn ich eine komponente im create zur laufzeit erstelle und als owner Form1 übergebe, muss ich sie dann am ende OnClose auch wieder freigeben? soweit ich weiss müsste form1 das als owner selbst tun oder?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#2

Re: freigeben?

  Alt 18. Okt 2004, 08:07
Ja, die Freigabe übernimmt der Owner selbst.

Gruß, teebee
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: freigeben?

  Alt 18. Okt 2004, 08:21
gut, danke.

wäre es auch so wenn es der Parent wäre? das gleiche wie Owner?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#4

Re: freigeben?

  Alt 18. Okt 2004, 08:43
Wenn ein WinControl zersört wird, gibt es alle Child-Controls vorher frei, d.h. alle Komponenten, die als Parent dieses WinControl haben. Im Prinzip brauchst Du also entweder einen Owner oder ein Parent. (Auch wenn die OH hier etwas anderes sagt... siehe: TWinControl.Destroy).
Aber alle Objekte _ohne_ Owner oder Parent müssen von Dir selber freigegeben werden.

Gruß, teebee
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: freigeben?

  Alt 18. Okt 2004, 09:40
In meinem Kopf schwirrt etwas rum von wegen, dass nur "Owner" für die Freigabe verantwortlich ist. Parent hingegen hat damit nichts zu tun, sondern gibt nur an, wo sich visuelle Kompos hinzeichnen sollen. Es kann aber auch sein, dass ich das genau vertausche...
Auf jeden Fall sind nicht beide für die Freigabe von Bedeutung.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#6

Re: freigeben?

  Alt 18. Okt 2004, 09:48
@dizzy
Was bei dir im Kopf rumschwirrt ist richtig.
Der Owner kümmert sich um den Speicher bzw die Freigabe und der Parent sagt, wohins gemalt werden soll.
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#7

Re: freigeben?

  Alt 18. Okt 2004, 09:59
Zitat von Sanchez:
Der Owner kümmert sich um den Speicher bzw die Freigabe und der Parent sagt, wohins gemalt werden soll.
Das ist zwar prinzipiell richtig so und wird auch so in der OH beschrieben, aber ein Blick in die VCL-Quellen zeigt, dass TWinControl in Destroy seine untergeordneten Controls freigibt. Komponenten, die kein Control sind fallen da natürlich nicht drunter, die haben ja aber auch gar kein Parent.

Gruß, teebee
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: freigeben?

  Alt 18. Okt 2004, 10:16
Zitat von teebee:
Komponenten, die kein Control sind fallen da natürlich nicht drunter, die haben ja aber auch gar kein Parent.
Aber sie haben einen Owner (alle ab TComponent). Und der ist für die Freigaben zuständig - nicht der Parent! (Oder hab ich's verpeilt was du sagen wolltest? )
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#9

Re: freigeben?

  Alt 18. Okt 2004, 10:24
Zitat von dizzy:
(Oder hab ich's verpeilt was du sagen wolltest? )
Ich glaube ja...
Natürlich sind wir uns einig, dass prinzipiell der Owner für die Freigabe einer Komponente zuständig ist. Wenn die Komponente allerdings ein Control ist und ein Parent hat, gibt der Parent in seinem Destroy diese Komponente frei: Siehe TWinControl.Destroy in den VCL-Quellen. Das steht leider nicht so in der OH, ist aber trotzdem so...

Gruß, teebee
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: freigeben?

  Alt 18. Okt 2004, 11:18
Datt isn Ding! Eigentlich eine Fehlerquelle par excellance, wenn man dann versucht da noch selber freizugeben...
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:53 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