Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#6

AW: Freigabe, aller Formulare meiner Anwendung, debuggen

  Alt 21. Aug 2014, 09:17
In TApplication.CreateForm wird irgendwann Instance.Create(Self) aufgerufen. Damit ist die TApplication Instanz Owner des Forms. Die Freigabe erfolgt dann wie bei jedem anderen Owner auch über DestroyComponents. Das wird aber wiederum in DoneApplication aufgerufen.

Man darf natürlich keinen Breakpoint in DestroyComponents setzen, da das ja noch von anderen Stellen aufgerufen wird. Du kannst nur mit F8 durchsteppen und sehen, wo es knallt.

Es gibt noch zwei Alternativen:
  1. Setze einen Breakpoint in TCustomForm.Destroy
  2. Iteriere nach dem Application.Run rückwärts über Screen.Forms und gib die Forms manuell frei

Der zweite Ansatz bringt allerdings eine andere Ablaufreihenfolge, die den Fehler womöglich kaschiert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat