ListIconGadget - Ordre des colonnes - solution

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Bmld76
Messages : 116
Inscription : dim. 09/janv./2022 12:47

ListIconGadget - Ordre des colonnes - solution

Message par Bmld76 »

Bonjour,


Il est possible d'obtenir les données d'une ListIconGadget dans l'ordres des colonnes mais si l'ordre a été changé par l'utilisateur avec l'option '#PB_ListIcon_HeaderDragDrop' activée, l'ordre obtenu est toujours l'ordre initial. Est-il possible d'obtenir l'ordre réel obtenu après déplacement des colonnes.

Remarque : Le code est prévu pour fonctionner sur les 3 os Mac , Linux et windows

Complement : par contre GetGadgetItemAttribute(Gadget, #PB_Ignore, #PB_ListIcon_ColumnWidth, c) donne la largeur de la colonne dans le nouvel ordre.


Bien cordialement
Dernière modification par Bmld76 le dim. 23/avr./2023 13:24, modifié 2 fois.
_____________________________________________________________
IMAC 21.5 2012 Core I5 - 2.70 Ghz. 16 GB NVIDIA GeForce GT 640M 512 Mo. MacOs OCPL Sonoma 14.3
MacBook Air M1 - 8Go - Sonoma 14.5

PureBasic 6.11 MacOS
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: ListIconGadget - Ordre des colonnes

Message par Ar-S »

J'ai bien essayé mais je n'arrive à rien de probant.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Bmld76
Messages : 116
Inscription : dim. 09/janv./2022 12:47

Re: ListIconGadget - Ordre des colonnes

Message par Bmld76 »

Merci, je viens de faire un programme test et le résultat m'inique un problème PureBasic

Avec le programme de test , on observe que l'ordre suit les commutations pour la taille et les titres mais pas pour les datas. J'ai vu un forum Bug, je vais le poster.

Bien cordialement

Image

Apres commutation des colonnes

Image

Code : Tout sélectionner

Procedure ordre()
  
  For colonne = 0 To  CountGadgetItems(0)
    Debug GetGadgetItemText(0, -1 ,colonne ) +" "+GetGadgetItemText(0, 0 ,colonne ) + " "+GetGadgetItemAttribute(0, #PB_Ignore, #PB_ListIcon_ColumnWidth, colonne)
  Next
  Debug ""
EndProcedure



; Démonstration des options possibles pour le gadget liste avec icônes...
  If OpenWindow(10, 0, 0, 700, 300, "ListIconGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
    ; colonne de gauche
    TextGadget    (6,  10,  10, 330, 20, "Liste avec icônes standard", #PB_Text_Center)
    ListIconGadget(0,  10,  25, 500, 200, "Colonne 1", 100,#PB_ListIcon_HeaderDragDrop)
    ButtonGadget(1, 10,  260, 100, 25, "ORDRE")

    
      For b = 2 To 4          ; ajouter 3 colonnes supplémentaires
        AddGadgetColumn(a, b, "Colonne " + Str(b), 40+b*10)
      Next
      For b = 0 To 2          ; ajouter 4 éléments à chaque ligne des listes avec icônes
        AddGadgetItem(a, b, "1"+Chr(10)+"2"+Chr(10)+"3"+Chr(10)+"4")
      Next
      
      Repeat
        Event = WaitWindowEvent()
        
        Select Event

          Case #PB_Event_Gadget
            Select EventGadget()
              Case 1 
                ordre()
            EndSelect
            
        EndSelect
           Until Event = #PB_Event_CloseWindow

      EndIf
Dernière modification par Bmld76 le mar. 20/sept./2022 10:59, modifié 1 fois.
_____________________________________________________________
IMAC 21.5 2012 Core I5 - 2.70 Ghz. 16 GB NVIDIA GeForce GT 640M 512 Mo. MacOs OCPL Sonoma 14.3
MacBook Air M1 - 8Go - Sonoma 14.5

PureBasic 6.11 MacOS
Bmld76
Messages : 116
Inscription : dim. 09/janv./2022 12:47

Re: ListIconGadget - Ordre des colonnes

Message par Bmld76 »

Sous windows , rien ne change Bizarre...

Image
_____________________________________________________________
IMAC 21.5 2012 Core I5 - 2.70 Ghz. 16 GB NVIDIA GeForce GT 640M 512 Mo. MacOs OCPL Sonoma 14.3
MacBook Air M1 - 8Go - Sonoma 14.5

PureBasic 6.11 MacOS
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: ListIconGadget - Ordre des colonnes

Message par Ar-S »

Le numéro de tes colonnes étant assigné au moment de la création de ces colonnes, je crois que le déplacement de ces dernières n'a pas d'impact.
Ce sont des constantes. Peut importe les modifications visuelles que tu y apportes. Ce n'est pas forcément un bug
(enfin c'est ma conclusion)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Bmld76
Messages : 116
Inscription : dim. 09/janv./2022 12:47

Re: ListIconGadget - Ordre des colonnes

Message par Bmld76 »

Ok, mais le résultat n'est pas le même suivant l'OS, ce n'est pas normal. Sur MacOs titre et taille suive le nouveau choix mais pas les datas, ca non plus ce n'est pas normal. Si c'est la version windows qui est correcte , c'est dommage car je désire obtenir l'ordre choisi par l'utilisateur.


cordialement
_____________________________________________________________
IMAC 21.5 2012 Core I5 - 2.70 Ghz. 16 GB NVIDIA GeForce GT 640M 512 Mo. MacOs OCPL Sonoma 14.3
MacBook Air M1 - 8Go - Sonoma 14.5

PureBasic 6.11 MacOS
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: ListIconGadget - Ordre des colonnes

Message par Ar-S »

Si selon l'OS les résultats diffèrent c'est effectivement à signaler en section bug (du forum anglais sinon ça risque de passer à l'as)..
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Bmld76
Messages : 116
Inscription : dim. 09/janv./2022 12:47

Re: ListIconGadget - Ordre des colonnes

Message par Bmld76 »

Signalé et réponse de mk-soft

Fred has changed the internal editing. This means that the text is no longer directly in the NSTableView, but in the object PBIconTextCell.
This is therefore a bug.
See: https://www.purebasic.fr/english/viewtopic.php?t=79842

P.S.
I just saw that the data has always been stored internally, even with PBv 5.73.
Dernière modification par Bmld76 le dim. 25/sept./2022 21:56, modifié 1 fois.
_____________________________________________________________
IMAC 21.5 2012 Core I5 - 2.70 Ghz. 16 GB NVIDIA GeForce GT 640M 512 Mo. MacOs OCPL Sonoma 14.3
MacBook Air M1 - 8Go - Sonoma 14.5

PureBasic 6.11 MacOS
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: ListIconGadget - Ordre des colonnes

Message par Mesa »

Windows seulement, mksoft a donné un code pour macos sur le forum uk.

Code : Tout sélectionner


Procedure.s GetGadgetItemTextListIcon(Gadget, Element, Colonne)
	
	Protected entete, ncols, NouvelOrdreCol, i, j
	entete = SendMessage_(GadgetID(Gadget), #LVM_GETHEADER, 0, 0)
	ncols = SendMessage_(entete, #HDM_GETITEMCOUNT, 0, 0)
	Dim elements.l(ncols) 
	
	NouvelOrdreCol = SendMessage_(entete, #HDM_GETORDERARRAY, ncols, @elements())   
	
	If NouvelOrdreCol <> 0 
		ProcedureReturn GetGadgetItemText(Gadget, Element , elements(Colonne) )	
	Else
		ProcedureReturn ""
	EndIf
	
EndProcedure



#listicon = 0
#button   = 1

; Démonstration des options possibles pour le gadget liste avec icônes...
If OpenWindow(10, 0, 0, 700, 300, "ListIconGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
	; colonne de gauche
	TextGadget    (6,  10,  10, 330, 20, "bug listicon entete drag n drop", #PB_Text_Center)
	ListIconGadget(#listicon,  10,  25, 500, 200, "Colonne 0", 100,#PB_ListIcon_HeaderDragDrop)
	ButtonGadget(#button, 10,  260, 100, 25, "ORDRE")
	
	
	For i = 1 To 3          ; ajouter 3 colonnes supplémentaires
		AddGadgetColumn(#listicon, i, "Colonne " + Str(i), 50+i*10)
	Next i
	
	For i=0 To 4 
		addtext$ = "C0:L" + Str(i) + Chr(10) + "C1:L" + Str(i) + Chr(10) + "C2:L" + Str(i) + Chr(10) + "C3:L" + Str(i)
		AddGadgetItem(0,-1, addtext$) 
	Next i
	add01$="add0"+ Chr(10) + "add1"
	AddGadgetItem(0,-1, add01$)
	add2$="add2"
	AddGadgetItem(0,-1, add2$)
	
	
	Repeat
		Event = WaitWindowEvent()
		
		Select Event
				
			Case #PB_Event_Gadget
				Select EventGadget()
						
					Case #button
						
						For i=0 To 3
							Debug GetGadgetItemTextListIcon(#listicon, -1, i)
							Debug GetGadgetItemTextListIcon(#listicon, 0, i)
						Next i
						
				EndSelect
				
		EndSelect
	Until Event = #PB_Event_CloseWindow
	
EndIf
M.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: ListIconGadget - Ordre des colonnes

Message par Ollivier »

A la lecture de ce sujet,

bonne observation de l'auteur,
bonne réaction de l'auteur.

Je ne connaissais même pas cette option de changement de colonne.

Je vais demander dans quels délais, Fred pourra résoudre le bug.

PS: Par contre, Bmld76, tes hyper-liens, à l'avenir, il faudra les faire "propre"
(url)http:://etc.unsite.oui(/url)

(avec des crochets à la place des parenthèses)


https://www.purebasic.fr/english/viewto ... 70#p584170

ps: @Bmld76 c'est un canular ton lien : ça parle de couleur de fond de colonne.... On perd vite du temps...

Ok... Trouvé un vieux sujet pour Windows seulement de 2007 repris par kcc en 2015, c'est trop vieux et c'est dans coding questions section pas dans les bugs reports...

https://www.purebasic.fr/english/viewtopic.php?p=466504

Je vais vérif quand même avec ton pseudo... Mais c'est vraiment beaucoup de temps à consacrer à la place d"un simple clic...

Ça y est ! Je t'ai trouvé ! Pffou... Tu t'étais bien caché ! Alors le but c'est que ce problème soit résolu rapidement.

(autre syntaxe d'hyper lien : (url=http://etc.unsite.oui)Expression de présentation(/url)
)
Le vrai lien objectif de ce sujet
(lien classique pour copier/coller facile pour les autres)
https://www.purebasic.fr/english/viewtopic.php?t=79842
Bmld76
Messages : 116
Inscription : dim. 09/janv./2022 12:47

Re: ListIconGadget - Ordre des colonnes

Message par Bmld76 »

Bonsoir,

Merci Ollivier pour ces réponses et désolé pour mon lien pourri. Effectivement, je n'ai pas fait attention j'ai du mélangé les liens, je suis un gros développement et je traite plusieurs problèmes à la fois.

Par contre, je vais voir les liens qui traitent de ce sujets que je n'avais pas trouvé.

Bien cordialement
_____________________________________________________________
IMAC 21.5 2012 Core I5 - 2.70 Ghz. 16 GB NVIDIA GeForce GT 640M 512 Mo. MacOs OCPL Sonoma 14.3
MacBook Air M1 - 8Go - Sonoma 14.5

PureBasic 6.11 MacOS
Bmld76
Messages : 116
Inscription : dim. 09/janv./2022 12:47

Re: ListIconGadget - Ordre des colonnes

Message par Bmld76 »

Bonsoir,

Je viens de vérifier avec la version 6.01, le problème des entêtes qui ne suivent pas les colonnes n'est pas résolu.
_____________________________________________________________
IMAC 21.5 2012 Core I5 - 2.70 Ghz. 16 GB NVIDIA GeForce GT 640M 512 Mo. MacOs OCPL Sonoma 14.3
MacBook Air M1 - 8Go - Sonoma 14.5

PureBasic 6.11 MacOS
Bmld76
Messages : 116
Inscription : dim. 09/janv./2022 12:47

Re: ListIconGadget - Ordre des colonnes - solution

Message par Bmld76 »

Pour solutionner le problème , il suffit de prendre en compte les entêtes de colonne et non leur position qui suivent bien le déplacement des colonnes. Comment ne pas y avoir pensé plus tot.
_____________________________________________________________
IMAC 21.5 2012 Core I5 - 2.70 Ghz. 16 GB NVIDIA GeForce GT 640M 512 Mo. MacOs OCPL Sonoma 14.3
MacBook Air M1 - 8Go - Sonoma 14.5

PureBasic 6.11 MacOS
Répondre