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