[VB6] ImageList zurücksetzen

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Condottiero
Beiträge: 12
Registriert: 29.07.2011, 13:19
Alter Benutzername: warez666
Echter Name: Chris

[VB6] ImageList zurücksetzen

Beitrag von Condottiero »

Hallo Zusammen,

schon wieder ich ... ;-) Merkt man, dass VB6 nicht unbedingt "meine" Sprache ist? :-D

Folgende Problemstellung, bei der ich gerade nicht unbedingt weiter weiß.

In meinem Projekt habe ich ein ListView (namens SelectedImages) und eine ImageList (namens Images). Die ImageList ist ans ListView gebunden und speichert im Prinzip die Icons, die in der ListView dargestellt werden sollen. Hier verwende ich eine ImageList, weil die Icons im ListView gleichzeitig die Thumbnails der im ListView aufgelisteten Bilder sind und mir keine praktikablere Lösung einfiel.

Nun habe ich einen Button, mit dem ich den gesamten Inhalt des ListView-Controls löschen kann. Zeitgleich möchte ich dann aber auch meine ImageList zurücksetzen, damit dort keine Thumbnails mehr gespeichert sind und ich die Größe der Thumbnails wieder verändern kann.

Folgender Code steckt hinter meinem Button Click Event:

Code: Alles auswählen

Private Sub btnDeleteAll_Click()
    SelectedImages.ListItems.Clear
    Images.ListImages.Clear
End Sub
Leider kann ich die ImageList auf diesem Weg nicht leeren, da sie ja noch an das ListView-Control gebunden ist. Wie kann ich diese Bindung zur Laufzeit aufheben, die ImageList vollständig zurücksetzen und dann die Bindung wieder herstellen?

Viele Grüße,
Chris
Condottiero
Beiträge: 12
Registriert: 29.07.2011, 13:19
Alter Benutzername: warez666
Echter Name: Chris

Re: [VB6] ImageList zurücksetzen

Beitrag von Condottiero »

Nachtrag:

Hier ein Snippet, was mein Problem vllt. etwas präzisiert.

Code: Alles auswählen

1 Set SelectedImages.Icons = Nothing
2 Images.ListImages.Clear
3 MsgBox Images.ListImages.count
4 MsgBox "Breite " + CStr(Images.ImageWidth) + vbCrLf + "Höhe " + CStr(Images.ImageHeight)
5 Set SelectedImages.Icons = Images
Im Detail:
Zuerst löse ich die Bindung zwischen ImageList und ListView (Zeile 1), indem ich SelectedImages.Icons auf Nothingsetze (was vorher noch auf Images gesetzt war). Dann leere ich meine ImageList mit Images.ListImages.Clear (Zeile 2), wodurch einerseits die Bilder gelöscht und andererseits auch die Werte für width/ height zurückgesetzt werden. Das wiederum wird mir in Zeile 3 + 4 durch die beiden MessageBoxes bestätigt. In Zeile 5 sollte ich dann eigentlich wieder die Bindung zwischen ListView und ImageList herstellen können, indem ich Set SelectedImages.Icons = Images verwende. An dieser Stelle erhalte ich dann aber den Laufzeitfehler 35613, "Das Abbildungsliste-Steuerelement muß vor der Verwendung initialisiert werden".

Und genau an diesem Punkt hänge ich nun. ^^ Die ImageList existiert (ich habe sie ja die ganze Zeit verwendet) und im Code oben wird lediglich die Bindung zum ListView gelöst, die ImageList geleert und versuche nun die Bindung wieder herzustellen.

Wo liegt das Problem? :D

Viele Grüße,
Chris
Antworten