2013/7/30 Maximilian Tyrtania <li...@contactking.de>:
> Das Fenster überlebt im Speicher, weil Du eine Referenz im Array gespeichert 
> hast und der refcount nicht 0 erreicht

Ich glaube, daß jemand aber schon schrieb, daß man die Einträge aus
dem Array entfernen soll, sobald des Fenster's Close-Event aufgerufen
wird.

Man kann es stattdessen aber auch mit WeakRefs ins Array lösen.

Also statt:
 FensterArr.Append New Window1

Eher so:
 dim w as New Window1
 FensterArr.Append new WeakRef(w)

Beim Abfrage des Arrays würde man dann so vorgehen:

 dim ref as WeakRef = FensterArr(idx)
 if ref.Value = 0 then
   // Fenster wurde durch "Close" geschlossen
   FensterArr.Remove idx // aus Array entfernen
 else
   dim w as Window1 = Window1(ref.Value)
   … jetzt haben wir das Fenster
  end

Oder so.
Dennoch, meine vorige Lösung ist imer noch die bessere.

-- 
Thomas Tempelmann, http://www.tempel.org/
Follow me on Twitter: http://twitter.com/#!/tempelorg

Antwort per Email an