Icons ändern im ListIcon
Icons ändern im ListIcon
Kann man irgendwie die Icons von einzelnen Items ändern ohne dabei die ganzen Einträge neu zu schreiben?
...also quasi on the fly...
...also quasi on the fly...
[PB4.20]
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Code: Alles auswählen
lvi.LV_ITEM
lvi\mask = #LVIF_IMAGE
lvi\iItem = xyz
lvi\iImage = xyz
SendMessage_(xyz,#LVM_SETITEM,0,lvi)
hm...also das funktioniert nicht so wie es sollte.
Wenn vorher ein Icon angezeigt wurde, verschwindet es nachdem dieser Code ausgeführt wurde.
Oder hab ich da was übersehen?
Wenn vorher ein Icon angezeigt wurde, verschwindet es nachdem dieser Code ausgeführt wurde.
Oder hab ich da was übersehen?
Code: Alles auswählen
lvi.LV_ITEM
lvi\mask = #LVIF_IMAGE
lvi\iItem = 2
lvi\iImage = ImageID(1)
SendMessage_(GadgetID(#ListIconGadget),#LVM_SETITEM,0,lvi)
[PB4.20]
iImage ist ein Index (wie man an dem "i" vorm Namen sehen kann) und kein handle (sonst wärs ein "h"). Und der Index bezieht sich auf (wenn ich mich richtig erinnere) eine IconListe des ListView-Windows. Geht also so nich, solange du die Liste nich kennst.

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Code: Alles auswählen
Enumeration
#ListIcon
#ChangeButton
EndEnumeration
Procedure ChangeIcon(IconID.L, Row.L, IconIndex.L)
LVITEM.LV_ITEM
LVITEM\Mask = #LVIF_IMAGE
LVITEM\iItem = Row
LVITEM\iImage = IconIndex
SendMessage_(GadgetID(IconID), #LVM_SETITEM, 0, @LVITEM)
EndProcedure
If OpenWindow(1, 0, 0, 270, 110, "Änderung von Icons im ListIconGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(1))
ListIconGadget(#ListIcon, 10, 10, 250, 57, "Icon", 40, #PB_ListIcon_GridLines)
ButtonGadget(#ChangeButton, 85, 80, 110, 20, "1.Icon austauschen")
Icon1 = LoadImage(1, #PB_Compiler_Home + "Examples\Sources\Data\CdPlayer.ico")
Icon2 = LoadImage(2, #PB_Compiler_Home + "Examples\Sources\Data\Drive.bmp")
AddGadgetColumn(#ListIcon, 1, "Text", 206)
AddGadgetItem(#ListIcon, -1, "" + #LF$ + "Icon 1", Icon1)
AddGadgetItem(#ListIcon, -1, "" + #LF$ + "Icon 2", Icon2)
CurrentIcon = 1
Repeat
WindowEvent = WaitWindowEvent()
If WindowEvent = #PB_Event_Gadget
If EventGadget() = #ChangeButton
CurrentIcon = CurrentIcon ! 3
ChangeIcon(#ListIcon, 0, CurrentIcon)
EndIf
EndIf
Until WindowEvent = #PB_Event_CloseWindow
EndIf
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
-
- Beiträge: 207
- Registriert: 09.12.2004 22:09