Zitat von
Golze:
Das Problem ist, wenn ein Release benutzt wird, kann anschließend kein NIL zugewiesen werden.
Aus der
OH:
Zitat:
Jede Ereignisbehandlungsroutine für das Formular oder für dessen untergeordnete Objekte sollte Release anstelle von Free (Delphi) oder Delete (C++) benutzen. Ansonsten kann ein Speicherzugriffsfehler auftreten.
mmh, das wußte ich auch noch nicht. Komisch. hab das auch noch nie gesehen.
Zitat:
Hinweis:Release gibt die Steuerung sofort an die aufrufende Routine zurück und wartet nicht, bis das Formular freigegeben wird.
Aha, jetzt weiß ich auch, warum das keiner benutzt.
Zitat:
Ich habe mir auch mal die FreeAndNIL - Methode angesehen.
Nehmen wir mal an, du benutzt ein Objekt das außerhalb der Prozeduren und Funktionen liegt. Da macht es sehr viel Sinn, wenn du FreeAndNil benutzt. Dann kannst du mit...
Delphi-Quellcode:
if Assigned(MyObject)
then
ShowMessage('
Oh, Objekt existiert noch');
... ob's das Objekt noch gibt.
Eine Form, die mit Application.Create erstellt worden ist, würde ich auch
nie mit Release oder Free freigeben.
Warum auch. Mit Application.Create entschließe ich mich ja dazu, das das Objekt Application die Speicherverwaltung übernehmen soll.
Wenn's anders laufen soll, dann erstelle ich die Form per Hand.