Problem mit Listicongadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Problem mit Listicongadget

Beitrag 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?
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Problem mit Listicongadget

Beitrag von NicTheQuick »

Das liegt wohl daran, dass du bei 'SetGadgetItemImage(#ActorsListIcon, 0, miniImage)' als Index immer 0 übergibst anstatt der korrekten Position.
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Re: Problem mit Listicongadget

Beitrag 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.
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Antworten