Seite 1 von 1

ListIconGadget einfärben *gelöst*

Verfasst: 06.03.2023 08:48
von Led Zep
Moin allerseits,

hänge gerade an einem ListIconGadget fest, dass ich einfärben will. Je nach Zellenwert soll eine Zelle eine bestimmte Farbe erhalten. Die Farben verpasse ich mittels SetGadgetItemColor. Allerdings bleibt da immer ein ungefärbter Bereich am linken Rand der ersten Spalte - wer kannn mir sagen, wie man die komplette erste Spalte vollständig färbt und schubst mich in die richtige Richtung?

Besten Dank im Voraus!

Re: ListIconGadget einfärben

Verfasst: 06.03.2023 08:56
von jacdelad

Code: Alles auswählen

OpenWindow(0,0,0,400,300,"Test",#PB_Window_SystemMenu)
ListIconGadget(0,0,0,400,300,"Test",360,#PB_ListIcon_GridLines)
AddGadgetItem(0,-1,"Test1")
AddGadgetItem(0,-1,"Test2")
AddGadgetItem(0,-1,"Test3")
AddGadgetItem(0,-1,"Test4")
SetGadgetItemColor(0,1,#PB_Gadget_BackColor,#Red)
SetGadgetItemColor(0,2,#PB_Gadget_BackColor,#Blue)

Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
Meinst du den Rand zwischen der roten und der blauen Zeile? Ist das nicht die Gitterlinie (bzw. ein freier Bereich wenn die Gitterlinien ausgeschaltet sind). Dieser Bereich gehört soweit ich weiß nicht zur Zelle (ist ja die Gitterlinie).

Re: ListIconGadget einfärben *gelöst*

Verfasst: 07.03.2023 07:47
von Led Zep
Hallo Jacdelad,

vielen Dank für Deinen Input. Das war ganz klar ein Denkfehler von mir. Mich hat der ungefärbte Bereich zwischen Fensterrand und Gadget gestört. Trotz X-Position 0 war da ein 11 Pixel breiter Rand mit der Fensterhintergundfarbe. Habe das Gadget jetzt mit X-Position auf -11 gesetzt und das funktioniert scheinbar. Ich hoffe, es hat keine ungünstige Auswirkung, wenn Gadgetpositionen im negativen Wertebereich liegen.

Re: ListIconGadget einfärben *gelöst*

Verfasst: 07.03.2023 13:26
von jacdelad
Ich hab auch gerade gemerkt, dass eine Anwendung hier auf Arbeit auch ein ListView (Windows) bzw. ListIcon (PureBasic) benutzt und dort keine Ränder zu sehen sind. Mit OwnerDraw und APIs kann man da sicher auch mehr dran umoperieren.