listviewgadget: unterschiedliche hintergrundfarbe je item

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

listviewgadget: unterschiedliche hintergrundfarbe je item

Beitrag 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
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: listviewgadget: unterschiedliche hintergrundfarbe je ite

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: listviewgadget: unterschiedliche hintergrundfarbe je ite

Beitrag von marcelx »

Danke RSBasic für die schnelle Antwort

Gruß
MarcelX
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: listviewgadget: unterschiedliche hintergrundfarbe je ite

Beitrag 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.)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: listviewgadget: unterschiedliche hintergrundfarbe je ite

Beitrag 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!
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: listviewgadget: unterschiedliche hintergrundfarbe je ite

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: listviewgadget: unterschiedliche hintergrundfarbe je ite

Beitrag 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.
Win-10, PB 5.31 (Windows - x86)
Antworten