coloration de ListIcon alternée

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

coloration de ListIcon alternée

Message par Jacobus »

Est-ce que l'un d'entre-vous a déjà procédé au coloriage d'un ListIcongadget() en alternant la couleur des lignes?

Code : Tout sélectionner

For NbElement = 0 To CountGadgetItems(#ListIcon)
  SetGadgetItemColor(#ListIcon,  NbElement, #PB_Gadget_BackColor,  RGB(238, 204, 128), -1)
 Next
de cette façon, la couleur s'applique à toutes les lignes au fur et à mesure du remplissage du ListIcon, mais je voudrais que la couleur ne s'applique qu'à une ligne sur deux. Une idée?
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Re: coloration de ListIcon alternée

Message par Flype »

Code : Tout sélectionner

For NbElement = 0 To CountGadgetItems(#ListIcon) - 1 Step 2
  SetGadgetItemColor(#ListIcon,  NbElement, #PB_Gadget_BackColor,  RGB(238, 204, 128), -1)
 Next
[...] Step 2 ?

je le fais souvent. il y a plein de facons...

Code : Tout sélectionner

nbLignes = CountGadgetItems(#ListIcon) - 1
For NbElement = 0 To nbLignes
  If NbElement & 1
    SetGadgetItemColor(#ListIcon, NbElement, #PB_Gadget_BackColor, RGB(238, 204, 128), -1)
  EndIf
Next
Image
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Merci Flype, c'est au poil! :D
Step 2 ?
Il faut que j'arrive à l'enregistrer celui-là et à y penser automatiquement...

Ainsi on peut alterner les couleurs :

Code : Tout sélectionner

For NbElement = 0 To CountGadgetItems(#ListIcon) - 1 Step 2 
  SetGadgetItemColor(#ListIcon,  NbElement, #PB_Gadget_BackColor,  RGB(238, 204, 128), -1) 
 Next
For NbElement = 1 To CountGadgetItems(#ListIcon) - 1 Step 2 
  SetGadgetItemColor(#ListIcon,  NbElement, #PB_Gadget_BackColor,  RGB(219, 224, 171), -1) 
 Next
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

juste un truc.

quand on écrit dans une boucle :

Code : Tout sélectionner

For NbElement = 0 To CountGadgetItems(#ListIcon) - 1 Step 2
  [...]
Next
CountGadgetItems(#ListIcon) va être appelé autant de fois qu'il y a d'itération.
Pour une toute petite liste çà va, mais s'il y a bcp d'éléments, il est plus propre d'écrire :

Code : Tout sélectionner

nbLignes = CountGadgetItems(#ListIcon) - 1
For NbElement = 0 To nbLignes Step 2
  [...]
Next
petite démonstration avec un compteur d'appel.

Code : Tout sélectionner

Procedure.l CountGadgetItemsEx(a.l)
  Shared compteur
  compteur + 1
  Debug compteur
  ProcedureReturn CountGadgetItems(a)
EndProcedure

Macro CountGadgetItems(a)
  CountGadgetItemsEx(a)
EndMacro

#ListIcon = 0

OpenWindow(0, 100, 100, 300, 300, "")
CreateGadgetList(WindowID(0))
ListIconGadget(#ListIcon, 0, 0, 300, 300, "",200)

For i = 0 To 1000
  AddGadgetItem(#ListIcon, -1, Str(i))
Next

;nbLignes = CountGadgetItems(#ListIcon) - 1

For NbElement = 0 To CountGadgetItems(#ListIcon) - 1 Step 2
  SetGadgetItemColor(#ListIcon, NbElement, #PB_Gadget_BackColor, RGB(238, 204, 128), -1)
Next

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Image
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message par gnozal »

ou encore *PUB* :

- alterner les lignes :
PureCOLOR_SetGadgetColorEx(MonListIconGadget, CouleurTexte, CouleurFondPaire, CouleurFondImpaire, #PureCOLOR_LV_AlternateColors)
- alterner les colonnes :
PureCOLOR_SetGadgetColorEx(MonListIconGadget, CouleurTexte, CouleurFondPaire, CouleurFondImpaire, #PureCOLOR_LV_AlternateColors2)

:D
Répondre