Einzelnen Beitrag anzeigen

DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#2

Re: Datamodule richtig Frei geben

  Alt 14. Aug 2007, 11:03
Hi,
wenn du an mehreren Stellen deines Programmes das Datamodul freigibst dann solltest du nicht mit


Free arbeiten.
Objekt.Free prüft intern schon ob das Objekt noch eine Referenz hat (aber nicht ob diese auch gültig ist)

angenommen du mach das:
Delphi-Quellcode:
MeinObjekt.Free; // Objekt freigeben
....

...

..
Programm Beenden:

Delphi-Quellcode:
MeinObjekt.Free; // hier knallst (MeinObjekt hat jetzt noch eine Referenz auf einen Speicherplatz, aber das Objekt ist schon
//freigegeben.


Du solltest besser folgendes machen:

Delphi-Quellcode:
FreeAndNil ( MeinObjekt ); // Objekt wird zerstört und Objektreferenz wird auf NIL gesetzt
..
..
..
MeinObjekt.Free; // hier knallst jetzt nicht, da intern auf <>NIL geprüft wird, d.h. das Objekt ist NIL und es wird
//kein Destruktor aufgerufen
Solltest du noch fragen haben, helfe ich dir gerne

Gruß
DelphiManiac
  Mit Zitat antworten Zitat