Am 29.07.2013 um 22:29 schrieb Christian Dorn <[email protected]>: > > Am 29.07.2013 um 09:40 schrieb Christian Hahn: > >>> Toll, besten Dank. >>> Ich habe es nun mit einem Array so eingerichtet, dass ich auch während des >>> Programm-Laufs weitere Instanzen von Window1 erzeugen kann: >>> in App: FensterArr() as Window1 >>> Sub NeuesFensterBilden >>> FensterArr.Append New Window1 >>> FensterArr(UBound(FensterArr)).Title = "Fenster: " + >>> str(UBound(FensterArr)) >>> FensterArr(UBound(FensterArr)).MeinePositionImArray = UBound(FensterArr) >>> >>> Wenn das Fenster geschlossen wird, kann mit der fenstereigenen Propertie >>> MeinePositioImArray das entsprechende Element in FensterArr() wieder >>> entfernt werden. > > > Grundsätzlich kannst Du natürlich auch ein Array verwenden. Aber die > Eigenschaft ".MeinePositionImArray" kann nicht funktionieren! Stell Dir mal > vor, Du hast ein Array mit 5 Elementen (Fenstern). Jetzt schließt Du das > zweite Fenster (.MeinePositionImArray = 1). Was passiert dann mit den > Fenstern 3-5? > > Deren Eigenschaft "MeinePositionImArray" zeigt dann plötzlich auf ein > falsches Element im Array!
Nein, nur weil man das Fenster schliesst heisst das noch lange nicht, dass es aus dem Array verschwindet. Das Array kann sehr wohl auch Referenzen auf geschlossene Fenster beinhalten. Das Fenster überlebt im Speicher, weil Du eine Referenz im Array gespeichert hast und der refcount nicht 0 erreicht. Ist natürlich eigentlich wiederum kaum gewollt, deswegen ist der von TT angegebene Weg mit der Window()-Funktion richtig. Maximilian Tyrtania http://www.contactking.de
