Seite 1 von 1

listviewgadget: unterschiedliche hintergrundfarbe je item

Verfasst: 24.02.2013 18:58
von marcelx
Hallo,

ich möchte bei ein listviewgadget die Hintergrundfarbe jeden Item einzelne einstellen.
Geht so was und wie (oder wo nachlesen)

Danke

MarcelX

Re: listviewgadget: unterschiedliche hintergrundfarbe je ite

Verfasst: 24.02.2013 19:02
von RSBasic
Nimm lieber ein ListIconGadget und entferne die Spaltenleiste ( http://www.rsbasic.de/aktualisierung/wi ... tfernen.pb ).
Außerdem nutze #PB_ListIcon_FullRowSelect, um die ganze Zeile markierbar zu machen.
Dann kannst du problemlos jeden Eintrag einzeln einfärben.

Re: listviewgadget: unterschiedliche hintergrundfarbe je ite

Verfasst: 24.02.2013 19:13
von marcelx
Danke RSBasic für die schnelle Antwort

Gruß
MarcelX

Re: listviewgadget: unterschiedliche hintergrundfarbe je ite

Verfasst: 24.02.2013 19:16
von RSBasic
Tipp: Um die Breite deiner Spalte auf Maximum zu setzen, kannst du damit setzen: http://www.rsbasic.de/aktualisierung/wi ... npassen.pb
Diese API-Funktion musst du dann nach dem Hinzufügen eines neuen Eintrags ebenfalls ausführen. (Falls die Scrollbar-Leiste aufgrund der Anzahl der Einträge angezeigt wird.)

Re: listviewgadget: unterschiedliche hintergrundfarbe je ite

Verfasst: 24.02.2013 20:45
von marcelx
Als Beispiel:

Code: Alles auswählen

id = 1
idLV=2

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ListIconGadget(id,10,10,25,230,"",20,#LVS_NOCOLUMNHEADER)
  
  ListViewGadget(idLV, 35, 10, 50, 230)
  For i = 1 To 10
    AddGadgetItem(idLV, -1, "Color "+Str(i))
    AddGadgetItem(id, -1, "")
  Next
  
   SetGadgetItemColor(id, 0, #PB_Gadget_BackColor, RGB(255, 0, 0))
   SetGadgetItemColor(id, 1, #PB_Gadget_BackColor, RGB(0, 255, 0))
   SetGadgetItemColor(id, 2, #PB_Gadget_BackColor, RGB(0, 0, 255))
   SetGadgetItemColor(id, 3, #PB_Gadget_BackColor, RGB(255, 0, 255))
   
   SetGadgetItemColor(id, 4, #PB_Gadget_BackColor, RGB(170, 0, 0))
   SetGadgetItemColor(id, 5, #PB_Gadget_BackColor, RGB(0, 170, 0))
   SetGadgetItemColor(id, 6, #PB_Gadget_BackColor, RGB(0, 0, 170))
   SetGadgetItemColor(id, 7, #PB_Gadget_BackColor, RGB(170, 0, 170))
   SetGadgetItemColor(id, 8, #PB_Gadget_BackColor, RGB(0, 170, 170))
   SetGadgetItemColor(id, 9, #PB_Gadget_BackColor, RGB(170, 170, 0))
   SetGadgetItemColor(id, 10, #PB_Gadget_BackColor, RGB(85, 0, 0))
  
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Ich wollte, daß die Zeilen zusammenpassen!

Re: listviewgadget: unterschiedliche hintergrundfarbe je ite

Verfasst: 24.02.2013 20:54
von RSBasic
@marcelx
Warum erstellst du zwei ListIconGadgets?
Erstell doch nur eins und erstelle zusätzlich Farbgrafiken und füge diese als Icon hinzu:

Code: Alles auswählen

EnableExplicit

Define id = 1

CreateImage(1, 16, 16)
CreateImage(2, 16, 16)

If StartDrawing(ImageOutput(1))
  Box(0, 0, 16, 16, RGB(255, 0, 0))
  
  StopDrawing()
EndIf
If StartDrawing(ImageOutput(2))
  Box(0, 0, 16, 16, RGB(0, 255, 0))
  
  StopDrawing()
EndIf

;weitere Farbgrafiken hier erstellen...

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ListIconGadget(id,10,10,65,230,"",0,#LVS_NOCOLUMNHEADER)
  SendMessage_(GadgetID(id),#LVM_SETCOLUMNWIDTH,0,#LVSCW_AUTOSIZE_USEHEADER)
  
  AddGadgetItem(id, -1, "Color 1", ImageID(1), 0)
  AddGadgetItem(id, -1, "Color 2", ImageID(2), 0)
 
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Re: listviewgadget: unterschiedliche hintergrundfarbe je ite

Verfasst: 24.02.2013 21:13
von marcelx
Warum erstellst du zwei ListIconGadgets?
ich habe ein altes pb von mir und wollte es erweitern (ohne zu viel zu ändern)

Wie ich dass sehen, muss ich mein pb mit ListIconGadget umstellen.