ListIconGadget et SetGadgetState

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

ListIconGadget et SetGadgetState

Message par Thyphoon »

Lorsque je sélectionne automatiquement une ligne dans un ListiconGadget via le commande SetGadgetState la couleur de sélection est très très pale ! rien a voir avec la couleur bleu lorsqu'on sélectionne avec un clic. Comment faire pour que la selection via SetGadgetState est la même couleur qu'avec le clic ? et pourquoi cette différence ?

Code : Tout sélectionner

If OpenWindow(0, 100, 100, 300, 200, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   ListIconGadget(0, 5, 5, 290, 90, "Name", 100, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
   AddGadgetColumn(0, 1, "Address", 250)
   AddGadgetItem(0, -1, "Harry Rannit"+Chr(10)+"12 Parliament Way, Battle Street, By the Bay")
   AddGadgetItem(0, -1, "Ginger Brokeit"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
   AddGadgetItem(0, -1, "bidule machin"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
   AddGadgetItem(0, -1, "grrrrrrr"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
   SetGadgetState(0,1)
   Repeat
     Event = WaitWindowEvent()
   Until Event = #PB_Event_CloseWindow
 EndIf
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: ListIconGadget et SetGadgetState

Message par Chris »

La couleur est claire parce que le gadget n'a plus le focus une fois qu'il est créé.
SetGadgetState() ne donne pas le focus au gadget, il marque seulement un élément comme "Sélectionné".

Ajoute SetActiveGadget(0), il devrait reprendre des couleurs.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: ListIconGadget et SetGadgetState

Message par Thyphoon »

tu as raison super merci !!! :mrgreen:
Dernière modification par Thyphoon le mer. 22/juin/2011 12:58, modifié 1 fois.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: ListIconGadget et SetGadgetState

Message par Thyphoon »

par contre même avec les setgadgetcolor() on peut pas changer ces 2 couleurs ? (la couleur de sélection sans focus, et la couleur de sélection avec focus)
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: ListIconGadget et SetGadgetState

Message par Chris »

Oui, j'ai remarqué ça aussi.

Tu peux changer la couleur des éléments uniquement si ils ne sont pas sélectionnés. :cry:
Ce serait sympa si on avait cette possibilité.
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: ListIconGadget et SetGadgetState

Message par falsam »

Petite astuce dans la boucle évènementiel pour changer la couleur de sélection quand on quitte le tableau.

Code : Tout sélectionner

If OpenWindow(0, 100, 100, 400, 300, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   ListIconGadget(0, 5, 5, 390, 250, "Name", 100, #PB_ListIcon_FullRowSelect)
   StringGadget(1, 5, 270, 100, 20, "")
   AddGadgetColumn(0, 1, "Address", 250)
   
   AddGadgetItem(0, -1, "Harry Rannit"+Chr(10)+"12 Parliament Way, Battle Street, By the Bay")
   AddGadgetItem(0, -1, "Ginger Brokeit"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
   AddGadgetItem(0, -1, "bidule machin"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
   AddGadgetItem(0, -1, "grrrrrrr"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
   SetGadgetState(0,1) : SetActiveGadget(0)
   
   Repeat
     Event = WaitWindowEvent()
     Select event
       Case #PB_Event_Gadget
         Select EventGadget()
           Case 0
             For i=0 To CountGadgetItems(0)
               SetGadgetItemColor(0, i, #PB_Gadget_BackColor, #White)
             Next i
             
           Case 1
             For i=0 To CountGadgetItems(0)
               SetGadgetItemColor(0, i, #PB_Gadget_BackColor, #White)
               SetGadgetItemColor(0, GetGadgetState(0), #PB_Gadget_BackColor, #Yellow)  
             Next i

         EndSelect
         
     EndSelect
         
   Until Event = #PB_Event_CloseWindow
EndIf
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: ListIconGadget et SetGadgetState

Message par Thyphoon »

falsam a écrit :Petite astuce dans la boucle évènementiel pour changer la couleur de sélection quand on quitte le tableau.
très astucieux ! :mrgreen: Un grand merci! l'essayer c'est l’adopter
Chris a écrit :Oui, j'ai remarqué ça aussi.

Tu peux changer la couleur des éléments uniquement si ils ne sont pas sélectionnés. :cry:
Ce serait sympa si on avait cette possibilité.
On peut toujours en parler dans la whishlist sur le forum anglais si ce n'est déjà fait... on ne sait jamais ! :wink: En tout cas merci d'être penché sur mon problème !
Répondre