AGB  ·  Datenschutz  ·  Impressum  







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

speicher freigeben

Ein Thema von Delphi-Phil · begonnen am 8. Aug 2008 · letzter Beitrag vom 8. Aug 2008
Antwort Antwort
Delphi-Phil

Registriert seit: 22. Jun 2007
410 Beiträge
 
#1

speicher freigeben

  Alt 8. Aug 2008, 11:47
Hallo Zusammen,

habe mal folgende Frage.

Wenn ich eine Prozedur habe, wie hier:
Delphi-Quellcode:
//Anwendung beenden mit Abfrage vorweg
procedure THauptForm.ProgrammBeenden1Click(Sender: TObject);
var
  buttonSelected : Integer;
begin
  // Show a confirmation dialog
  buttonSelected := MessageDlg('Wollen Sie das Programm wirklich beenden?',mtConfirmation, mbOKCancel, 0);

  // If confirm close the application
  if buttonSelected = mrOK then Close;
end;
ist dann automatisch wenn die Prozedur durchgelaufen ist, der Speicher für die Var buttonSelected wieder freigegeben oder muss ich es vor Ende der Prozedur selber machen?
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: speicher freigeben

  Alt 8. Aug 2008, 11:49
Du musst diese Variable nicht selbst wieder freigeben. Die Aufräumarbeiten am Ende der Prozedur macht Delphi schon. Lediglich Objekte die du selbst erzeugt, müssen von Dir selbst auch wieder freigegeben werden. Bei nativen Typen wie Integer-Zahlen ist das nicht erforderlich.
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Delphi-Phil

Registriert seit: 22. Jun 2007
410 Beiträge
 
#3

Re: speicher freigeben

  Alt 8. Aug 2008, 11:50
danke für die Antwort!
  Mit Zitat antworten Zitat
Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#4

Re: speicher freigeben

  Alt 8. Aug 2008, 14:37
Zitat von mirage228:
... Lediglich Objekte die du selbst erzeugt, müssen von Dir selbst auch wieder freigegeben werden. ...
Wie ist das denn wenn das Programm beendet wird ohne dass ich vorher das Objekt selber wieder freigegeben habe? Wir durch das Beenden des Programms der Speicher freigegeben, oder entsteht dann ein Speicherloch?
  Mit Zitat antworten Zitat
Delphi-Phil

Registriert seit: 22. Jun 2007
410 Beiträge
 
#5

Re: speicher freigeben

  Alt 8. Aug 2008, 14:39
meines wissens wird der speicher nach dem beenden von den gesammten programm wieder freigegeben.

Es läuft ja im System eh alles was du an speicher für eine anwendung reservierst unter einem prozess, der ja dann beendet wird...
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: speicher freigeben

  Alt 8. Aug 2008, 14:41
Andernfalls wäre das eine ziemlich effektive Methode, den Computer unbenutzbar zu machen.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#7

Re: speicher freigeben

  Alt 8. Aug 2008, 14:43
Trotzdem sollte man sich grundsätzlich daran gewöhnen IMMER alle selbst erzeugten Objekte wieder frei zu geben.
So gewöhnt man sich an einen guten Programmierstil.

Ich habe es schon oft genug erlebt, daß mir gesagt wurde "Das Programm wird eh nur kurz geöffnet, die Funktionalität ausgeführt und danach beendet. Wen juckt es, ob ein Objekt freigegeben wurde oder nicht".
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Delphi-Phil

Registriert seit: 22. Jun 2007
410 Beiträge
 
#8

Re: speicher freigeben

  Alt 8. Aug 2008, 14:46
sicherlich keine frage...

gerade wenn man große anwendungen programmiert und viel zwischen den Units rumspringt ist es wichtig immer alles wieder freizugeben!
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: speicher freigeben

  Alt 8. Aug 2008, 17:40
Zitat von Apollonius:
Andernfalls wäre das eine ziemlich effektive Methode, den Computer unbenutzbar zu machen.
Man erinnere sich nur an den Real-Mode
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  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 05:37 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