ich stehe ein bißchen auf dem Schlauch. Mit folgendem Code hole ich mir
ein Icon aus einem Blob-Feld einer SQLite3-Datenbank. Dieses wandel ich
mit CatchImage in ein Image und versuche es dann in ein ListIconGadget
zu verfrachten.
Code: Alles auswählen
[Schleife]
FieldLen = SQLite3_Column_Bytes(Statement, 2) ; Feldlänge Icon-Blob ermitteln
If FieldLen
MemBuffer = AllocateMemory(FieldLen)
SourceMem = SQLite3_Column_Blob(Statement, 2)
CopyMemory(SourceMem, MemBuffer, FieldLen)
myIMG = CatchImage(#PB_Any, MemBuffer, FieldLen)
FreeMemory(MemBuffer)
EndIf
AddGadgetItem(#LIG, -1, myIconName$, ImageID(myIMG)) ; <-- KrachBumm (aber erst beim 26. Icon)
SetGadgetItemData(#LIG, lCounter, Val(myKey$))
[/Schleife]
von mir erwartet. Hier kann ich in einem Rutsch mehrere tausend Icons in
das ListIconGadget pumpen. Unter Windows XP jedoch schmiert PB mit
einem 'invalid memory access' in der Zeile AddGadgetItem() ab.
Das Merkwürdige: Der Absturz tritt genau beim 26ten Icon auf;
unabhängig von der Reihenfolge der Icons in der Datenbank. D.h., dass
"icon1.ico" problemlos eingefügt wird, wenn es an erster Stelle steht,
jedoch einen Fehler verursacht, wenn es an 26ter Stelle eingefügt wird.
Was läuft da schief?
Danke im voraus & Grüße ... Kiffi