Page 1 sur 1

Colonnes des "ListIconGadget"

Publié : sam. 22/janv./2011 13:07
par Chris
Est-ce que Fred pourrait ajouter la gestion des en-têtes de colonnes dans les ListIcon, histoire de pouvoir trier les données sans être obligé de passer par l'Api?

J'imagine que cette question a déjà été posée, mais j'ai pas le courage de faire une recherche. :mrgreen:

Re: Colonnes des "ListIconGadget"

Publié : mer. 06/juil./2011 13:43
par pat
Chris,

J'ai fait une petite recherche dans la SDK Documentation sur les API et j'ai consulté dans List Box (cela doit être cela pour les ListIconGadget) et je n'ai trouvé aucune fonction pour trier les listes, c'est pourquoi Fred, à mon avis, ne peux pas implémenter ça dans PB.
Il ne te manque plus que de vérifier cela vu mon niveau d'anglais faible.

Re: Colonnes des "ListIconGadget"

Publié : mer. 06/juil./2011 21:58
par anissa
Oui, j'ai moi même posé une question dans ce genre mais je ne sais plus où exactement... Ma question était de savoir s'il y avait possibilité de fusionner des colonnes ET/OU des lignes d'une ListIconGadget. Si ma mémoire est bonne, il n'y avait pas de solution pour ça. Je profite de l'occasion pour ajouter ceci:

Est il possible de choisir une police et une couleur pour une cellule bien déterminée dans une ListIconGagdet?

Merci de votre réponse

Re: Colonnes des "ListIconGadget"

Publié : jeu. 07/juil./2011 7:58
par gnozal
pat a écrit :J'ai fait une petite recherche dans la SDK Documentation sur les API et j'ai consulté dans List Box (cela doit être cela pour les ListIconGadget) et je n'ai trouvé aucune fonction pour trier les listes, c'est pourquoi Fred, à mon avis, ne peux pas implémenter ça dans PB.
Pour info,
sous Windows, un ListIconGadget est un contrôle de la classe "SysListView32".
Le tri des données peut être réalisé par le message #LVM_SORTITEMS et un callback.
Il y a plusieurs exemples sur le forum officiel.
anissa a écrit :Est il possible de choisir une police et une couleur pour une cellule bien déterminée dans une ListIconGagdet?
Oui.
1. Avec PureCOLOR_SetCellColorCallback() ;)

Code : Tout sélectionner

FontID = LoadFont(0, "Courier New", 12, #PB_Font_Bold)
;
Procedure MyCellColorCallback(GadgetNumber.l, CellRow.l, CellColumn.l, *TextColor.Long, *BackColor.Long, *FontID.Long)
   Shared FontID
   If GadgetNumber = 1
      CellText.s = GetGadgetItemText(GadgetNumber, CellRow, CellColumn)
      Debug Str(CellRow) + ":" + Str(CellColumn) + ">" + CellText
      Select CellText
         Case "Red"
            *TextColor\l = #Red
            Debug "-> Red"
         Case "Blue"
            *BackColor\l = #Blue
            *TextColor\l = #White
            Debug "-> Blue"
         Case "Green"
            *TextColor\l = #Green
            Debug "-> Green"
         Default
            *FontID\l = FontID
            Debug "-> Font"
      EndSelect
   EndIf
EndProcedure
;
OpenWindow(0, 100, 300, 400, 200, "PureCOLOR test : cell callback demo", #PB_Window_SystemMenu) 
ListIconGadget(1, 1, 1, 300, 190, "0", 100, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect)
SetGadgetFont(1, FontID)
;
AddGadgetColumn(1, 1, "1", 100)
AddGadgetColumn(1, 2, "2", 100)
AddGadgetItem(1, -1, "0:0" + Chr(10) + "0:1" + Chr(10) + "Red")
AddGadgetItem(1, -1, "1:0" + Chr(10) + "1:1" + Chr(10) + "1:2")
AddGadgetItem(1, -1, "Blue" + Chr(10) + "Green" + Chr(10) + "2:2")
AddGadgetItem(1, -1, "3:0" + Chr(10) + "Red" + Chr(10) + "3:2")
AddGadgetItem(1, -1, "Red" + Chr(10) + "4:1" + Chr(10) + "Red")
AddGadgetItem(1, -1, "Green" + Chr(10) + "Blue" + Chr(10) + "5:2")
AddGadgetItem(1, -1, "6:0" + Chr(10) + "6:1" + Chr(10) + "6:2")
AddGadgetItem(1, -1, "Red" + Chr(10) + "Blue" + Chr(10) + "7:2")
PureCOLOR_SetCellColorCallback(0, @MyCellColorCallback())
Repeat 
   EventID.l = WaitWindowEvent()
   If EventID = #PB_Event_CloseWindow 
      Break
   EndIf
ForEver
;
End
2. En utilisant l'API Windows ... voir #NM_CUSTOMDRAW / #CDDS_PREPAINT / #CDRF_NOTIFYSUBITEMDRAW / #CDDS_SUBITEMPREPAINT.
Il y a également beaucoup d'exemples sur le forum officiel.

Re: Colonnes des "ListIconGadget"

Publié : ven. 08/juil./2011 19:26
par anissa
@gnozal

Un grand merci !