Page 1 sur 1

Soucis avec l'utilisation de ListIconGadget et SetGadgetItem

Publié : lun. 14/déc./2015 20:44
par cage
Bonjour,
Je rencontre deux petits soucis dans l'utilisation du Gadget ListIconGadget
Soucis 1:
Malgré l'utilisation du paramètre #PB_ListIcon_GridLines, lorsque les champs sont vides, les séparations n'apparaissent pas ni entre la ligne des titres et la première ligne data, ni a la fin de la dernière colonne.
Si au moins la première ligne est documentée, la séparation apparait a la fin de la dernière colonne mais pas entre la ligne de titre et la première ligne des datas.
Soucis 2:
L'utilisation de SetGadgetItemColor pour changer la couleur de la ligne des titres ne fonctionne pas alors qu'aucune erreur n'est générée.
Est-ce que je commet une erreur de codage ou cela pourrait-il être un bug ?
Code qui met en évidence le soucis rencontré.
Le bouton Fill remplit les champs datas, le bouton Clear les efface.

Code : Tout sélectionner


Enumeration Window
  #MainForm
EndEnumeration

Enumeration Gadget
  #Gadget1
  #btnFill
  #btnClear
EndEnumeration

Procedure Fill()
  For n = 0 To 36 Step 4
    AddGadgetItem(#Gadget1, -1, "Value "+n + Chr(10) + "Value "+Str(n+1) + Chr(10) + "Value "+Str(n+2) + Chr(10) + "Value "+Str(n+3))
  Next
EndProcedure

Procedure Clear()
  ClearGadgetItems(#Gadget1)
EndProcedure

If OpenWindow(#MainForm, 0, 0, 429, 320, "ListIconGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  
  W=80
  
  ListIconGadget(#Gadget1, 2, 2, 425, 280, "Title 0", W, #PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
  
  AddGadgetColumn(#Gadget1, 1 , "Title 1" , W)
  AddGadgetColumn(#Gadget1, 2 , "Title 2" , W)
  AddGadgetColumn(#Gadget1, 3 , "Title 3" , W)
  
  SetGadgetItemColor(#Gadget1, 0, #PB_Gadget_BackColor, RGB(100,100,100), #PB_All)
  
  ButtonGadget(#btnClear,  2, 284, 50, 25, "Clear")
  ButtonGadget(#btnFill , 54, 284, 50, 25, "Fill")
  
  Repeat
    Event = WaitWindowEvent()
    Select Event
      Case #PB_Event_Gadget
        indexGadget = EventGadget()
        Select indexGadget
          Case #btnClear
            clear()
          Case #btnFill
            Fill()
        EndSelect
      Case #PB_Event_CloseWindow
        Break
    EndSelect
  ForEver
  End
EndIf


Re: Soucis avec l'utilisation de ListIconGadget et SetGadget

Publié : mar. 15/déc./2015 0:54
par falsam
cage a écrit :Malgré l'utilisation du paramètre #PB_ListIcon_GridLines, lorsque les champs sont vides, les séparations n'apparaissent pas ni entre la ligne des titres et la première ligne data, ni a la fin de la dernière colonne.
Si au moins la première ligne est documentée, la séparation apparait a la fin de la dernière colonne mais pas entre la ligne de titre et la première ligne des datas.
C'est moche je te l'accorde. En tout cas tu n'as pas commi d'erreur de code.
cage a écrit :L'utilisation de SetGadgetItemColor pour changer la couleur de la ligne des titres ne fonctionne pas alors qu'aucune erreur n'est générée.
parce que cette fonctionnalité fonctionne uniquement avec les items affichés.

j'ai modifié ton code. Cliques sur Fill. Mais ça reste assez moche.

Code : Tout sélectionner

Enumeration Window
  #MainForm
EndEnumeration

Enumeration Gadget
  #Gadget1
  #btnFill
  #btnClear
EndEnumeration

Procedure Fill()
  Protected Pass = -1
  For n = 0 To 36 Step 4
    AddGadgetItem(#Gadget1, -1, "Value "+n + Chr(10) + "Value "+Str(n+1) + Chr(10) + "Value "+Str(n+2) + Chr(10) + "Value "+Str(n+3))
    
    If pass = 1
      SetGadgetItemColor(#Gadget1, i, #PB_Gadget_BackColor, RGB(100, 100, 100), #PB_All)
    Else
      SetGadgetItemColor(#Gadget1, i, #PB_Gadget_BackColor, RGB(211, 211, 211), #PB_All)
    EndIf
    Pass*-1
    i+1
  Next
EndProcedure

Procedure Clear()
  ClearGadgetItems(#Gadget1)
EndProcedure

If OpenWindow(#MainForm, 0, 0, 429, 320, "ListIconGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  
  W=80
  
  ListIconGadget(#Gadget1, 2, 2, 425, 280, "Title 0", W, #PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
  
  AddGadgetColumn(#Gadget1, 1 , "Title 1" , W)
  AddGadgetColumn(#Gadget1, 2 , "Title 2" , W)
  AddGadgetColumn(#Gadget1, 3 , "Title 3" , W)
  
  SetGadgetItemColor(#Gadget1, -1, #PB_Gadget_BackColor, RGB(100, 100, 100), #PB_All)
  
  ButtonGadget(#btnClear,  2, 284, 50, 25, "Clear")
  ButtonGadget(#btnFill , 54, 284, 50, 25, "Fill")
  
  Repeat
    Event = WaitWindowEvent()
    Select Event
      Case #PB_Event_Gadget
        indexGadget = EventGadget()
        Select indexGadget
          Case #btnClear
            clear()
          Case #btnFill
            Fill()
        EndSelect
      Case #PB_Event_CloseWindow
        Break
    EndSelect
  ForEver
  End
EndIf

Re: Soucis avec l'utilisation de ListIconGadget et SetGadget

Publié : mar. 15/déc./2015 2:09
par cage
Merci falsam
Cela marche bien pour chaque ligne mais pas pour le titre donc.
Je voulais mettre un peu de couleur a la ligne des titres pour pallier au manque de séparation.
Cela n'est pas bien grave.
Pour la séparation de droite, j'avais trouvé un palliatif en rajoutant la ligne de code

Code : Tout sélectionner

AddGadgetColumn(#Gadget1, 4 , "" , 1)
mais une colonne de Titre vide et de 1 de largeur, cela fait un peu bizarre.

Re: Soucis avec l'utilisation de ListIconGadget et SetGadget

Publié : mar. 15/déc./2015 10:06
par MLD
C'est ce que j'ai déja exprimé. Certains gadgets sont en retard d'un vélo. C'est ce qui empêche PB d'être plus intensément utilisé pour des applications proféssionnels. Surement un manque a gagner pour la team.

Re: Soucis avec l'utilisation de ListIconGadget et SetGadget

Publié : mar. 15/déc./2015 12:21
par falsam
MLD a écrit :C'est ce que j'ai déja exprimé. Certains gadgets sont en retard d'un vélo. C'est ce qui empêche PB d'être plus intensément utilisé pour des applications proféssionnels. Surement un manque a gagner pour la team.
Bonjour MLD.

D’après ce que j'ai compris, PureBasic comme la plupart des langages utilise l'API (Application Programming Interface) de l'OS sur lequel il s’exécute.

Le rendu des gadgets est donc forcément lié à cet interface de programmation.

Si comme vous l'avez exprimé, Certains gadgets sont en retard d'un vélo c'est parce qu'on ne développe pas de Plugins pour améliorer ces gadgets comme le fait PC-Soft par exemple?

Quand au manque à gagner, je pense que le modèle économique de PureBasic n'est pas prévu pour réellement gagner de l'argent.

Re: Soucis avec l'utilisation de ListIconGadget et SetGadget

Publié : mar. 15/déc./2015 16:35
par MLD
@ falsam

C'est vrais, mais même MS dans les outils de programmation (VB et autres) a fait des plus par rapport a l'API.
Pour le modèle économique, il serait intérêssant que Fred ne soit ps trop maigre. :lol:

Re: Soucis avec l'utilisation de ListIconGadget et SetGadget

Publié : mar. 15/déc./2015 16:36
par falsam
Depuis que Fred c'est marié il va reprendre du poids ^^

Re: Soucis avec l'utilisation de ListIconGadget et SetGadget

Publié : mer. 16/déc./2015 10:34
par microdevweb
Personnellement je trouve que les ListiconGadget ne sont pas terrible. Maintenant tout cela dépend de l'usage, moi je me suis fais ma propre table (réservé pour les Db)

http://www.purebasic.fr/french/viewtopi ... =6&t=15694