Page 1 sur 1
coloration de ListIcon alternée
Publié : dim. 02/juil./2006 9:53
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?
Re: coloration de ListIcon alternée
Publié : dim. 02/juil./2006 10:10
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
Publié : dim. 02/juil./2006 10:24
par Jacobus
Merci Flype, c'est au poil!
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
Publié : dim. 02/juil./2006 11:18
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
Publié : lun. 03/juil./2006 14:43
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)
