AGB  ·  Datenschutz  ·  Impressum  







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

Objekte freigeben

Ein Thema von khh · begonnen am 23. Dez 2008 · letzter Beitrag vom 23. Dez 2008
Antwort Antwort
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#1

Objekte freigeben

  Alt 23. Dez 2008, 14:48
hallo zusammen,

ich habe mir angewöhnt in eigenen Klassen die Objekte die ich im construktor erzeuge , im destruktor wieder freizugeben.

wie verhält es sich nun bei den Forms die über den Objektinspetor erstellt werden?

ich habe ein form in dessen
procedure MyForm.FormCreate(Sender: TObject)
einige andere objekte erzeugt werden.


macht es Sinn diese in der myForm.FormDestroy(Sender: TObject) wieder freizugeben,
oder kann man das vernachlässigen, da sie ja eh bei der Zerstörung des Form mit vernichtet werden?

danke für eure Meinungen


Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Objekte freigeben

  Alt 23. Dez 2008, 14:50
Hi,

Also ich mache es immer. Ich finds einfach schöner.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Objekte freigeben

  Alt 23. Dez 2008, 14:52
Zitat von khh:
oder kann man das vernachlässigen, da sie ja eh bei der Zerstörung des Form mit vernichtet werden?
Moment, das ist nicht zwingend der Fall, sondern nur dann, wenn das Formular auch der Owner des Objektes ist. Erstellst du zum Beispiel eine StringListe, musst du sie auch wieder freigeben, wenn das Formular nicht der Owner ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Objekte freigeben

  Alt 23. Dez 2008, 14:53
Zitat von Luckie:
Zitat von khh:
oder kann man das vernachlässigen, da sie ja eh bei der Zerstörung des Form mit vernichtet werden?
Moment, das ist nicht zwingend der Fall, sondern nur dann, wenn das Formular auch der Owner des Objektes ist. Erstellst du zum Beispiel eine StringListe, musst du sie auch wieder freigeben, wenn das Formular nicht der Owner ist.
heisst alle objekte die ich mit nil erstelle muss ich auch im destroy wieder freigeben?
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

Re: Objekte freigeben

  Alt 23. Dez 2008, 14:55
Wer soll das denn sonst tun?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Objekte freigeben

  Alt 23. Dez 2008, 14:55
Ob es erst im OnDestroy sein muss, weiß ich nicht. Gib es sobald wie möglich frei, also dann, wenn du nicht mehr darauf zugreifen musst.
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Objekte freigeben

  Alt 23. Dez 2008, 14:59
Zitat von Matze:
Ob es erst im OnDestroy sein muss, weiß ich nicht. Gib es sobald wie möglich frei, also dann, wenn du nicht mehr darauf zugreifen musst.

ok, ich danke euch

EDIT:
und warum bekomme ich bei einem mit nil, also myobject.create(NIL) im oncreate erzeugten objekt
bei der freigabe im destroy
myobjekt.free

eine exception?

das heisst doch dass das object schon nicht mehr existiert, oder ?
Karl-Heinz
  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 12:39 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