AGB  ·  Datenschutz  ·  Impressum  







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

Delphi Speicherverwaltung

Ein Thema von mimuc · begonnen am 22. Mai 2003 · letzter Beitrag vom 22. Mai 2003
Antwort Antwort
Seite 1 von 2  1 2      
mimuc

Registriert seit: 22. Mai 2003
Ort: NRW
7 Beiträge
 
Delphi 7 Enterprise
 
#1

Delphi Speicherverwaltung

  Alt 22. Mai 2003, 08:47
Hallo zusammen,

ich habe ein Problem in Delphi und finde keine Lösung. Mein Programm belegt nach dem öffnen eines fensters 2 MB mehr Speicher. Dieser Speicher wird nach dem schließen, trotz Release und Free Befehl für Stringlisten und Bildvariablen nicht wieder freigegeben.
Was muss ich alles tun um den Speicher wieder richtig sauber zu kriegen? Wie entferne ich alle benutzten Variablen und Layout Elemente aus dem Speicher ?
  Mit Zitat antworten Zitat
[Flox]Cauchy

Registriert seit: 26. Dez 2002
Ort: Wiesbaden
13 Beiträge
 
Delphi 5 Enterprise
 
#2
  Alt 22. Mai 2003, 08:57
Eigentlich sollte es reichen, die Objekte mit der Methode Free freizugeben. Was meinst Du allerdings mit "Layout-Elementen"?
  Mit Zitat antworten Zitat
mimuc

Registriert seit: 22. Mai 2003
Ort: NRW
7 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 22. Mai 2003, 09:05
Damit meine ich die erzeugten Felder (Edits), das Hintergrundbild usw. Werden all diese Elemente automatisch mit dem Release Befehl für das Fenster aus dem Speicher entfernt ? Gleiche Frage gilt für alle lokalen Variablen ? Oder muss jede Variable und jedes im Layout angezeigte Objekt einzeln per Befehl entfernt werden ?
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#4
  Alt 22. Mai 2003, 09:09
Der Speicher wird auf jeden Fall freigegeben, denn was nach Beendigung eines Programms noch im Speicher herumkugelt wird von Windows automatisch aufgeräumt..!
Manuel Pöter
  Mit Zitat antworten Zitat
mimuc

Registriert seit: 22. Mai 2003
Ort: NRW
7 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 22. Mai 2003, 09:14
Das ist klar, aber was ist nach schließen eines Fensters (nicht beim Schließen des ganzen Programms) ?

Muss ich alle variablen, Stringlisten usw. einzeln aus dem Speicher löschen ?
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6
  Alt 22. Mai 2003, 09:24
StringListen auf jeden Fall.

Als Regel gilt: Alles wofür du selbst Speicher reserviert hast (dazu zählt auch das Instanzieren von Klassen) musst du auch selbst wieder freigeben.
  Mit Zitat antworten Zitat
mimuc

Registriert seit: 22. Mai 2003
Ort: NRW
7 Beiträge
 
Delphi 7 Enterprise
 
#7
  Alt 22. Mai 2003, 09:29
Ok, Danke. Dann eine letzte (blöde ) Frage. Wie gebe ich Variablen frei? Strings, Integer usw. ?
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#8
  Alt 22. Mai 2003, 10:09
Strings werden von Delphi intern verwaltet (ähnlich wie der GarbageCollector von Java). Integers usw. kannst du nicht freigeben. Sofern es sich nur um lokale Variablen handelt belegen sie nur für die Laufzeit der jeweiligen Prozedur Stackspeicher. Wenn es sich um globale Variablen handelt dann liegen sie für die gesamte Laufzeit deines Progs im Speicher...
Manuel Pöter
  Mit Zitat antworten Zitat
mimuc

Registriert seit: 22. Mai 2003
Ort: NRW
7 Beiträge
 
Delphi 7 Enterprise
 
#9
  Alt 22. Mai 2003, 10:15
Das hilft mir schon weiter Danke erstmal. Ich wühle mal weiter wo mein Speicherplatz abgeblieben ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#10
  Alt 22. Mai 2003, 10:40
Hast Du das Fenster-Objekt auch wieder freigegeben?

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  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 11:54 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