Bild ändern bei ListIconGadget()

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Langstein
Beiträge: 13
Registriert: 25.09.2008 18:29

Bild ändern bei ListIconGadget()

Beitrag von Langstein »

Hallo zusammen,

ich will in einer Tabelle das Bild in einer Zeile ändern. Hat jemand eine Idee?
Benutzeravatar
Bisonte
Beiträge: 2465
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

Also mit ohne Api gehts auch...

Code: Alles auswählen

  Eintrag = GetGadgetState(#ListIcon)

  If Eintrag > -1
  
    Text.s = GetGadgetItemText(#ListIcon,Eintrag,Spalte)
    
    RemoveGadgetItem(#ListIcon,Eintrag)
    AddGadgetItem(#ListIcon,Eintrag,Text,ImageID(NeueBildNr))
    
    SetGadgetItemState(#ListIcon,Eintrag,1)

  EndIf
Nur beim Text muss man bei mehrenen Spalten halt alle durchlaufen, und
dann zusammenhängen, aber das sollte ja kein Problem sein.

Edit : Nun Doch mit Api ... wegen der Anzahl der Spalten.

Code: Alles auswählen

Procedure ChangeListIconPicture(Gadget,Image)

  Eintrag = GetGadgetState(Gadget)

  If Eintrag > -1
    
    MaxSpalten = SendMessage_(SendMessage_(GadgetID(Gadget),#LVM_GETHEADER,0,0), #HDM_GETITEMCOUNT,0,0)
    
    Text.s = ""
    
    For Spalte = 1 To MaxSpalten
    
      Text.s = Text + GetGadgetItemText(Gadget,Eintrag,Spalte-1)
      
      If Spalte<MaxSpalten
        Text + Chr(10)
      EndIf
      
    Next Spalte

    RemoveGadgetItem(Gadget,Eintrag)
    AddGadgetItem(Gadget,Eintrag,Text,ImageID(Image))
    
    SetGadgetItemState(Gadget,Eintrag,1)
    
  EndIf 

EndProcedure
(Anzahl der Spalten ermitteln - Kommt direkt von RSBasic's WinAPI Library Webseite)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Antworten