AGB  ·  Datenschutz  ·  Impressum  







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

Speicherleck nach Löschen des Parent???

Ein Thema von pesi · begonnen am 19. Dez 2016 · letzter Beitrag vom 22. Dez 2016
Antwort Antwort
pesi

Registriert seit: 29. Aug 2003
Ort: 36217 Ronshausen
117 Beiträge
 
Delphi XE5 Professional
 
#1

Speicherleck nach Löschen des Parent???

  Alt 19. Dez 2016, 14:28
Halli Hallo,

ich hätte da mal eine Frage: Ich erzeuge dynamisch TabSheets in einem TPageControl und packe auf die Sheets dann auch Elemente drauf (Memo, Label, etc.) deren Parent natürlich das jeweilige TabSheetX ist.

Muss ich, wenn die diese TabSheets nicht mehr benötige, alle einzelnen Elemente auf dem Sheet löschen oder reicht es mit TabSheet1.Destroy das Parent-Sheet platt zu machen??? Entsteht da irgendwelcher Datenmüll im Speicher?

Danke für Eure Einschätzung.

Gruß
Peter
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: Speicherleck nach Löschen des Parent???

  Alt 19. Dez 2016, 14:33
Schau mal bitte hier: http://delphi.about.com/od/adptips20...nilselfapp.htm
Eine englischsprachige Beschreibung zum Thema.
  Mit Zitat antworten Zitat
pesi

Registriert seit: 29. Aug 2003
Ort: 36217 Ronshausen
117 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Speicherleck nach Löschen des Parent???

  Alt 19. Dez 2016, 15:18
Da es in dem Artikel ja eher um Forms geht, hoffe ich, dass ich trotzdem das Wichtigste rausgelesen habe!?!?

"....the form is destroyed automatically when its owner is destroyed"

D.h. dann wohl, dass ich keinen Speichermüll erzeuge - richtig?

Sorry, bin ein eher simples Gemüt (oder nennen wir es "erfahrener Laie")

Danke Dir
Gruß
Peter
  Mit Zitat antworten Zitat
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Speicherleck nach Löschen des Parent???

  Alt 19. Dez 2016, 15:24
Richtig- Wenn das Formular zerstört wird, zerstört es auch alle Dinge die ihm "gehören". Darunter auch dein TabSheet.

Ich würde dem TabSheet als Owner das PageControl geben, aber im Endeffekt macht das wohl keinen Unterschied.

Wenn du dich so um Speicherlecks sorgst, setze doch mal die Variable ReportMemoryLeaksOnShutdown auf True und schau selbst
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: Speicherleck nach Löschen des Parent???

  Alt 19. Dez 2016, 15:35
Im Artikel steht:
Zitat:
inherit from TControl
Also alles, was davon abgeleitet ist. Erklärt wird am Beispiel eines TForms.

Eigentlich gilt es für alles, was von TComponent abgeleitet wird.

Flappsig fomuliert: Alles, was man irgendwie auf ein Formular pappen kann.

Oder als einfacher Merker:

Sieht der Konstruktor so aus constructor Create(AOwner: TComponent); override; wird das Teil zusammen mit dem angegebenen Owner weggeräumt, sobald der weggeräumt wird.
  Mit Zitat antworten Zitat
pesi

Registriert seit: 29. Aug 2003
Ort: 36217 Ronshausen
117 Beiträge
 
Delphi XE5 Professional
 
#6

AW: Speicherleck nach Löschen des Parent???

  Alt 19. Dez 2016, 16:10
Danke Euch!!!

  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Speicherleck nach Löschen des Parent???

  Alt 22. Dez 2016, 16:14
Ich würde dem TabSheet als Owner das PageControl geben, aber im Endeffekt macht das wohl keinen Unterschied.
Äh? durchaus macht das einen Unterschied Parent <> Owner
  Mit Zitat antworten Zitat
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Speicherleck nach Löschen des Parent???

  Alt 22. Dez 2016, 16:21
Dass Parent und Owner nicht das gleiche ist habe ich verstanden.

Aber was macht das in diesem konkreten Fall für einen Unterschied? Er hat sein PageControl und fügt zur Laufzeit weitere Tabsheets hinzu. Mehr nicht.

Ohne weitere Angaben: Die Tabsheets werden zerstört wenn das Pagecontrol zerstört wird. Das Pagecontrol wird zerstört wenn sein Parent (Formular/Frame) zerstört wird. Also praktisch kein Unterschied.
  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 07:33 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