AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Objektfreigabe

Ein Thema von Suboptimierer · begonnen am 30. Mär 2011 · letzter Beitrag vom 2. Apr 2011
 
Suboptimierer

Registriert seit: 30. Mär 2011
4 Beiträge
 
#8

AW: Problem mit Objektfreigabe

  Alt 30. Mär 2011, 12:28
Meine Frage ist, wie ich am elegantesten das Dilemma löse, dass ich beim Beenden des Programms immer Speicherfehler angezeigt bekomme?
Und was ist die Quelle deines Speicherfehlers? Entfernst du das Objekt oder nicht?
Bisher wird das Objekt wohl noch nicht entfernt. Bevor ich losmachen wollte, wollte ich mich nur nach dem elegantesten Stil umhören.
Die Meldung lautet übrigens so:
Zitat:
---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:



1 - 12 bytes: Unknown x 1

13 - 20 bytes: UnicodeString x 8

21 - 28 bytes: UnicodeString x 6

29 - 36 bytes: TCriticalSection x 1, TMuster x 4, UnicodeString x 2


---------------------------
OK
---------------------------
Quelle des Fehlers: ?

Soll ich den Destruktor der Mainform verwenden, um if assigned(Muster) then Muster.free; auszuführen?
Schon mal ausprobiert?
Bisher noch nicht, weil ich vom Gefühl her dies eher für eine schlechtere Variante halte. Meines Erachtens muss sich das Objekt selbst ums aufräumen kümmern, oder der Aufrufer (in diesem Fall nicht feststellbar) oder die ultimative Lösung: der Garbage Collector.

Und noch was: Eventuell ist die Prüfung einfacher, wenn du Muster mit nil initialisierst. Dann kannst du nämlich auf ungleich nil prüfen und weißt dann, dass ein Objekt existiert.
Was meinst du mit einfacher? Weniger Tipparbeit?

Delphi-Quellcode:
destructor TMuster.Destroy;
begin
  if Muster = Self then
    Muster := nil;
  inherited;
end;
Das ist finde ich eine sehr elegante Lösung
Damit brauche ich fremde Objekte nicht belasten. Das werde ich als erstes ausprobieren. Schon einmal danke!
  Mit Zitat antworten Zitat
 


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:47 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 by Thomas Breitkreuz