Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
Delphi 7 Professional
|
während Suspend des Threads ListView-Data-Pointer Zerstörung
14. Sep 2004, 23:39
Hallo,
ich habe ein wirklich kurioses Problem. Ich habe einen Thread der Thumbnails für einen ListView erzeugt. Dabei werden wichtige Daten ausgelesen und als Data-Pointer an die ListView-Items gehängt. Diese Pointer-Objekte werden bei einem Refresh(ausgelöst druch TreeView-Wechsel) natürlich manuell gelöscht. Das ganze funktioniert wunderbar, solange ich mich auf der Festplatte befinde.
Wähle ich meine Kamera aus, werden die Thumbs angezeigt und der Thread supendiert wie gewohnt. Wenn ich nun einen Refresh auslöse, fehlt manchmal vom 2. Objekt der Data-Pointer und beim Löschen gibt es daduch einen Crash. Dabei werden die Objekte IMMER gleich erstellt, ob nun von einer Kamera oder Festplatte. Der Data-Pointer des 2. Objektes ist vor dem Refresh noch vorhanden.
Mein Programm greift erst wieder auf die Objekte zu, wenn sie gelöscht werden sollen.
Dahinter scheint keine Logik zu stecken. Ich habe keine Ahnung an welcher Stelle ausgerechnet das 2. Objekt verändert wird.
Also wer eine Digital-Kamera hat, die ein virtuellen Ordner unter Arbeitsplatz einrichtet und mal ein ganz tolles Problem lösen möchte, soll bitte posten, dann packe ich den Code in den Anhang.
Es dauert ein bisschen die relevanten Teile zusammenzustellen, daher mache ich es erst, wenn sich jemand die Sache ernsthaft anschauen möchte.
Grüße
Sebastian
PS: Ohne Diggi-Cam lässt sich der Fehler nicht reproduzieren. Hat bei mir zumindest nicht geklappt.
Sebastian
|