Seite 1 von 1

Problem mit Listicongadget

Verfasst: 25.11.2013 11:38
von ProgOldie
Ich lese aus einer SQLite-DB mit der Tabelle 'actors' folgende Daten aus:
ActID,ActName,ActType,Ensemble,ActData (letzteres BLOB-Feld)
Diese Daten sollen im ListiconGadget #ActorsListIcon angezeigt werden.
Nun möchte ich diese Daten (einschließlich eines Mini-Bildes des BLOB-Feldes in der ersten Spalte) wie folgt anzeigen, wobei ich mich am Code von TS-Soft im SQLite-Tutorial orientiert habe:

Code: Alles auswählen

    AddGadgetColumn(#ActorsListIcon, 1, "ID", 30)
    AddGadgetColumn(#ActorsListIcon,2,"Name",100)
    AddGadgetColumn(#ActorsListIcon,3,"Type",50)
    While NextDatabaseRow(#Databasenum) 
      ;falls es sich um ein Bild handelt
      size = DatabaseColumnSize(#Databasenum,DatabaseColumnIndex(#Databasenum,"ActData"))
      *mem = AllocateMemory(size)
      If *mem
       ;Bilddaten in Speicher laden
        If GetDatabaseBlob(#Databasenum,DatabaseColumnIndex(#Databasenum,"ActData"), *mem, size)
          ImNr=CatchImage(#PB_Any, *mem,size)
          ;************************************ folgendes ist falsch ********
          miniImage=ResizeImage(ImNr,32,32)
          If miniImage
            SetGadgetItemImage(#ActorsListIcon, 0,miniImage)
          EndIf
          ;****************************************
          AddGadgetItem(#ActorsListIcon, -1, Chr(10)+GetDatabaseString(#Databasenum,0)+Chr(10)+GetDatabaseString(#Databasenum,1)+Chr(10)+GetExtensionPart(GetDatabaseString(#Databasenum,1)))
        EndIf
        FreeMemory(*mem)
      EndIf
    Wend
Es gelingt mir einfach nicht, das richtige Minibild einzufügen. Es steht immer nur eines in der ersten Zeile und ist das Falsche.
Woran liegt's?

Re: Problem mit Listicongadget

Verfasst: 25.11.2013 11:41
von NicTheQuick
Das liegt wohl daran, dass du bei 'SetGadgetItemImage(#ActorsListIcon, 0, miniImage)' als Index immer 0 übergibst anstatt der korrekten Position.

Re: Problem mit Listicongadget

Verfasst: 25.11.2013 12:04
von ProgOldie
Danke, das war's. Ich habe die PB-Hilfe missverstanden, weil ich dachte, in
SetGadgetItemImage(#Gadget, Eintrag, ImageID)
wäre 'Eintrag' die Position, an der das Bild innerhalb einer Tabellenzeile erscheint.