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)