Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Kein release in Finalization

  Alt 1. Jun 2017, 16:06
P.S. Wenn diese Unit in ein normales Programm eingebunden war, hat das release beim Schliessen des Programms immer normal funktioniert.
Jupp, da blieb ja der Code/RTTI erhalten und im selben Zug wurde auch die ganze VCL beendet, bevor die Unit/EXE aus dem Speicher verschwand.


Release statt Free, wenn nach dem Release/Free noch auf die Form zugegriffen werden konnte.
Drum heißt es auch oft, dass man die Form nicht innerhalb der eigenen Methoden freigeben soll, was aber auch Funktioniert, so lange danach nicht auf die Form zugegriffen wird.

Beispiel:
in TButton.OnClick den Button selber freigeben -> geht
in TcxButton.OnClick (DevExpress) den Button selber freigeben > knallt, da DevExpress selber nochmal auf die Buttoninstanz, also auf Self, zugreift (mit einem beherzten Delphi-Referenz durchsuchenAbort wird das umgangen)
$2B or not $2B

Geändert von himitsu ( 1. Jun 2017 um 16:09 Uhr)
  Mit Zitat antworten Zitat