Seite 2 von 3

Verfasst: 19.03.2006 05:51
von Konne
Das ist aber nicht gut wenn man gadgets nicht einfaerben kann wenn man einen falschen Skin hat. Nunja auf meinem PC gehts nicht. Und er wurde gestern neu installiert.

Verfasst: 19.03.2006 12:42
von ts-soft
XP-Theme beinhaltet auch Farben. Wäre noch schöner wenn jeder
Programmierer gegen meine Wünsch andere Farben wählt.
Da ist vollkommen Korrekt so. Du kannst ja im Programm den Skin-
Support deaktivieren.

Gibt man viel Geld für StyleXP oder ähnlich aus und dann wollen die einem
einfach andere Farben unterjubeln :freak: , hat Billy gut gemacht :allright:

Ein Hinweis in der Hilfe fehlt!

Nachtrag:
Ausserdem ist ein PanelGadget normallerweise Grau. Mit XP-Style ist es
Weiß, so das man Weiße Schrift nicht sehen würde. Das einfachste ist es also
das Windows bei XP-Style diese Attribute (da meist sowieso vom User
unerwünscht) ignoriert.

Verfasst: 19.03.2006 18:50
von Andre
ts-soft hat geschrieben:Ein Hinweis in der Hilfe fehlt!
Meinst Du jetzt ein Hinweis bei SetGadgetColor() ala
(Hinweis: Auf Windows XP mit eingeschalteten Skins hat diese Färbung keinen Effekt.)
:?:

Verfasst: 19.03.2006 18:58
von ts-soft
Genau, es sind ja auch nicht alle Farben sichtbar unter den verschiedenen
Skins, so das es schon Sinn macht, wenn diese nicht verändert werden.

Also: Mit aktiviertem XP-Style werden bei versch. Gadgets die
Color-Einstellungen ignoriert bzw. vom Style überschrieben.

Verfasst: 19.03.2006 19:10
von Andre
ts-soft hat geschrieben:Also: Mit aktiviertem XP-Style werden bei versch. Gadgets die Color-Einstellungen ignoriert bzw. vom Style überschrieben.
Done. :)

Verfasst: 27.08.2006 01:06
von jear
Muss die alte Geschichte leider aufwärmen:

Ob XP-Style oder nicht :
Ein ClearGadgetItemList() löscht die Einfärbung eines ListIconGadgets (nur damit habe ich es bisher probiert).

Warum muss das so sein? Bug oder unausweichlich?

Man muss das Gadget neu füllen und danach die Einfärbung wiederholen!

Das sollte man in der Hilfe erwähnen!

Code: Alles auswählen

; PB4 - Test SetGadgetItemColor 
If OpenWindow(0, 0, 0, 610, 320, "SetGadgetItemColor", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
 
  TextGadget(0, 10, 10, 300, 18, "")
  
  ListIconGadget(1, 10, 30, 590, 280, "aaa", 50)
  AddGadgetColumn(1, 1, "xxxx", 60)
  AddGadgetColumn(1, 2, "yyyyyyyyy", 110)
  AddGadgetColumn(1, 3, "zzzz", 65)
  AddGadgetColumn(1, 4, "hhhhhhhh", 150)
  AddGadgetColumn(1, 5, "ccccccc", 52)
  AddGadgetColumn(1, 6, "bbbbbbb", 60)
  
  For ix = 1 To 10
    AddGadgetItem(1, -1, "Text 1" + #lf$ + "Text 2" + #lf$ + "Text 3" + #lf$ + "Text 4")
  Next  
  
  For ix = 0 To 6 Step 2
    SetGadgetItemColor(1, -1, #PB_Gadget_BackColor, $E3FDFB, ix)
    SetGadgetItemColor(1, -1, #PB_Gadget_BackColor, $CFEDFC, ix + 1)
  Next
  SetGadgetText(0, "eingefärbt") : UpdateWindow_(WindowID(0)) : Delay(3000) 
  
  ClearGadgetItemList(1)
  
  SetGadgetText(0, "nach ClearGadgetItemList") : UpdateWindow_(WindowID(0)) : Delay(3000) 
  
  For ix = 0 To 20
    AddGadgetItem(1, -1, "Text 1" + #lf$ + "Text 2" + #lf$ + "Text 3" + #lf$ + "Text 4")
  Next  
  
  SetGadgetText(0, "Liste neu gefüllt") : UpdateWindow_(WindowID(0)) : Delay(3000) 
  
  For ix = 0 To 6 Step 2
    SetGadgetItemColor(1, -1, #PB_Gadget_BackColor, $E3FDFB, ix)
    SetGadgetItemColor(1, -1, #PB_Gadget_BackColor, $CFEDFC, ix + 1)
  Next
  
  SetGadgetText(0, "Liste neu eingefärbt") : UpdateWindow_(WindowID(0)) 
  
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  
EndIf

Verfasst: 27.08.2006 11:04
von HeX0R
Sowas braucht nicht in der Hilfe erwähnt werden, weil es völlig logisch ist.
Schliesslich redest du vom Einfärben einzelner Einträge.

Wenn dann die Einträge gelöscht werden, wäre es Blödsinn die einzelnen Farbinformationen weiterhin gespeichert zu lassen.

Anders verhält es sich, wenn du das ganze Gadget per SetGadgetColor() einfärbst, dann bleibt die Farbe auch nach dem Löschen bestehen.

Verfasst: 27.08.2006 14:00
von jear
Sowas braucht nicht in der Hilfe erwähnt werden, weil es völlig logisch ist.

@HeXOR
Für Dich vielleicht, aber nicht für die Leute, die in der Hilfe nachlesen.
Dass die Einfärbung einzelner Felder gelöscht wird, das ist logisch.
In meinem Beispiel werden jedoch ganze Spalten eingefärbt. Das könnte schon erhalten bleiben.
Außerden lassen sich die Spalten erst wieder einfärben, wenn die Liste neu befüllt ist.
Was ist daran logisch?

Verfasst: 27.08.2006 14:08
von ts-soft
>> In meinem Beispiel werden jedoch ganze Spalten eingefärbt. Das könnte schon erhalten bleiben.
Wenn aber keine Spalte vorhanden ist :freak:
Aber es wäre mit Sicherheit schöner, wenn nach erneutem Hinzufügen, die
Einfärbung autom. wieder aktiviert wäre :wink:

Verfasst: 27.08.2006 14:20
von jear
Wenn aber keine Spalte vorhanden ist
@ts-soft
Die Spalten werden ja durch ClearGadgetItemList() nicht zerstört. Sie enthalten nur keine Werte mehr!
Mit den Zeilen sieht das schon anders aus.
Unter PB3.94 habe ich die Befehle aus der Lib MoreListIconGadget von Denis genutzt. Da wurden die Spalten bei der Anlage der GUI eingefärbt und behielten die Färbung trotz ClearGadgetItemList(). Jetzt mit den nativen Funktionen in PB4 leider nicht mehr.
Um anderen PBlern die Lage zu verdeutlichen wäre IMHO ein Hinweis in der Hilfe angebracht:
Das Einfärben von Einträgen eines ListViewGadgets bzw. eines ListIconGadgets bedingt das Vorhandensein von Inhalten in der Liste. Dies gilt auch für das Einfärben von Spalten.