Zwischen dem primären Aufbau des Array und des List... für Images dürfte kein großer Unterschied sein. Beide werden vermutlich über eine Tabelle von Adressverweisen realisiert. Diese Adressverweise zeigen auf die eigentlichen Objekte. Wie sollte es auch anders sein. Der Unterschied beginnt bei den Erweiterungen. Möglicherweise erstreckt er sich auch auf die Behandlung von Löschungen.
Es scheint kein Speicherproblem zu sein, ein Array in folgendem Sinne zu intialisieren:
Dim IMG(5000) as Image
Damit lassen sich auch große Verzeichnisse bedienen und die oben erwähnte Tabelle von Adressen hat im 32-Bit-Adressraum eine Größe von 20.000 Byte. Man könnte also problemlos auch noch größer dimensionieren und dieses Array für unterschiedliche Inhalte und Mengen immer wieder verwenden. Das Problem liegt bei den Images selbst. Da kann nicht einfach ein Image auf den Platz des anderen geschoben werden. Jedes Image braucht einen separaten Speicherbereich. Deshalb muss bei nicht mehr benötigten Array-Images zwingend eine Freigabe stattfinden und wenn man sich nicht auf das System verlassen will und auch nicht weiß, wie das System damit umgeht, dann eben explizit.
Mich hätte eher die Frage interessiert, ob die Freigabe gleich in Verbindung mit bestimmten Befehlen passiert , wie etwa
Redim IMG(ANZ-1) oder
IMG.clear(...) oder
IMG(i) = Nothing oder
IMG(i) = IMGNeu
auf die es aber scheinbar keine sichere Antwort gibt. Hinweis: Ich rede stets von unabhängigen Images, die Ergebnis einer Function sind.
Es scheint kein Speicherproblem zu sein, ein Array in folgendem Sinne zu intialisieren:
Dim IMG(5000) as Image
Damit lassen sich auch große Verzeichnisse bedienen und die oben erwähnte Tabelle von Adressen hat im 32-Bit-Adressraum eine Größe von 20.000 Byte. Man könnte also problemlos auch noch größer dimensionieren und dieses Array für unterschiedliche Inhalte und Mengen immer wieder verwenden. Das Problem liegt bei den Images selbst. Da kann nicht einfach ein Image auf den Platz des anderen geschoben werden. Jedes Image braucht einen separaten Speicherbereich. Deshalb muss bei nicht mehr benötigten Array-Images zwingend eine Freigabe stattfinden und wenn man sich nicht auf das System verlassen will und auch nicht weiß, wie das System damit umgeht, dann eben explizit.
Mich hätte eher die Frage interessiert, ob die Freigabe gleich in Verbindung mit bestimmten Befehlen passiert , wie etwa
Redim IMG(ANZ-1) oder
IMG.clear(...) oder
IMG(i) = Nothing oder
IMG(i) = IMGNeu
auf die es aber scheinbar keine sichere Antwort gibt. Hinweis: Ich rede stets von unabhängigen Images, die Ergebnis einer Function sind.