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.