Einzelnen Beitrag anzeigen

idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#1

Wo gebe ich ein Formular wieder frei?

  Alt 27. Jun 2010, 12:21
Hallo,

ich bastle gerade an einer Unit, die mir ein "abstraktes" Formular implementiert, das ich dann zur Laufzeit mit unterschiedlichen Parametern erstellen kann.
Dazu gibt es eine Methode createform (....), der die Laufzeitparameter für das Formular übergeben werden.

Jetzt brüte ich über einem bzw. eigentlich zwei Problemen:

Das Formular wird nichtmodal aufgerufen, d.h. u.U. wird das aufrufende Formular geschlossen und dessen Instanz entfernt, während das neue Formular noch aktiv ist. Ich kann also die Form-Variable nicht in der aufrufenden Instanz deklarieren. Die Frage glaube ich beantwortet zu haben, bin mir aber nicht ganz sicher. Wahrscheinlich ist der richtige Platz dafür eine globale Liste oder ein globales array of TmyForm?

Aber vor allem, wo ist die "richtige" Stelle, um das Formular freizugeben, wenn es geschlossen worden ist? Das OnClose Ereignis ist wahrscheinlich noch zu früh, da fürchte ich, daß ich dem Formular quasi den Boden unter den Füssen wegziehe. Gibt es ein Ereignis, das aufgerufen wird nachdem das Formular geschlossen wurde und die Instanz ohne Probleme aus dem Speicher entfernt werden kann, oder wie könnte ich das sonst lösen? Ich habe schon daran gedacht, timergesteuert die Liste der Formulare durchzugehen und solche, die nicht mehr gebraucht werden, mit einer gewissen Verzögerung freizugeben. Die Lösung gefällt mir aber eigentlich gar nicht.
  Mit Zitat antworten Zitat