Seite 1 von 1

Verfasst: 02.11.2006 12:53
von Shardik

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

Verfasst: 02.11.2006 17:20
von Fluid Byte
Nur ums abzurunden...
iImage ist ein Index (wie man an dem "i" vorm Namen sehen kann) und kein handle (sonst wärs ein "h").
Das "i" steht für den Datentyp "Integer". :wink:

Verfasst: 03.11.2006 01:32
von Frogger
Danke an alle :)

@Shardik
Dein Code funktioniert einwandfrei :wink:
Genau sowas hab ich gesucht.

Verfasst: 10.06.2008 19:59
von pickelrobert
Hallo,

der Diskussionsfaden ist zwar schon etwas älter, aber mittlerweile sollte diese Funktion in PB eingebaut sein, damit's auch unter den anderen Betriebssystemen läuft. Oder irre ich mich da?