Page 1 sur 1
ListIcon et clics sur les colonnes
Publié : lun. 14/déc./2015 21:05
par Joubarbe
Salut,
Il y a déjà des sujets sur les tris d'une colonne lorsqu'on clique sur son titre, mais ils sont tous très vieux !
Donc la question, pour la généraliser un peu, serait de savoir s'il existe un moyen de renvoyer un évènement lorsqu'on clique sur une colonne d'une ListIcon ?
De sorte qu'avec l'évènement, je puisse tester la position de la souris, la largeur des colonnes, et savoir ainsi sur quelle colonne le clic a été effectué.
... ou alors tout simplement un truc magique qui a été ajouté dans les dernières versions de PB et que j'ignore totalement !
Merci.
Re: ListIcon et clics sur les colonnes
Publié : lun. 14/déc./2015 22:48
par Shadow
Salut,
Tu veux savoir sur quel ligne et colonne tu clique c'est ça ?
Sur quel cellules en gros ?
Ou même savoir ça sans même cliqué mais quand la souris est dessus ?
Re: ListIcon et clics sur les colonnes
Publié : lun. 14/déc./2015 23:03
par falsam
Shadow a écrit :
Tu veux savoir sur quel ligne et colonne tu clique c'est ça ?
Sur quel cellules en gros ?
Ou même savoir ça sans même cliqué mais quand la souris est dessus ?
Si tu lis bien ce n'est rien de tout ça
un moyen de renvoyer un évènement lorsqu'on clique sur une colonne d'une ListIcon ?
Re: ListIcon et clics sur les colonnes
Publié : lun. 14/déc./2015 23:30
par falsam
Une solution
Code : Tout sélectionner
Enumeration Window
#MainForm
EndEnumeration
Enumeration Gadget
#MyTable
EndEnumeration
Procedure MainFormCallBack(hwnd, msg, wParam, lParam)
Protected *pnmhdr.NMHDR, *pnmlistview.NMLISTVIEW
Select msg
Case #WM_NOTIFY
*pnmhdr = lParam
If *pnmhdr\code = #LVN_COLUMNCLICK
*pnmlistview = lParam
If *pnmlistview\hdr\hwndFrom = GadgetID(#MyTable)
;Quel est le numéro de la colonne cliquée ?
NumCol = *pnmlistview\iSubItem
Debug NumCol
;Quel est la largeur de la colonne cliquée
Debug GetGadgetItemAttribute(#MyTable, 0, #PB_ListIcon_ColumnWidth, NumCol)
EndIf
EndIf
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(#MainForm, 0, 0, 800, 600, "New Project", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ListIconGadget(#MyTable, 10, 10, 780, 580, "Col 1", 150, #PB_ListIcon_FullRowSelect)
AddGadgetColumn(#MyTable, 1, "Col 2", 300)
;Jeu test pour remplir un peu la table
For Row = 0 To 9
AddGadgetItem(#MyTable, -1, "Item " + Str(Row) + Chr(10) + "Value " + Str(Row))
Next
SetWindowCallback(@MainFormCallBack())
Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow
EndIf
Re: ListIcon et clics sur les colonnes
Publié : mar. 15/déc./2015 9:07
par Joubarbe
Hmm, ok merci !
Ce serait définitivement bien que l'équipe de PB considère un moyen interne d'interagir avec le titre des colonnes sur tous les OS

Re: ListIcon et clics sur les colonnes
Publié : lun. 11/janv./2016 14:48
par Shardik
Joubarbe a écrit :Ce serait définitivement bien que l'équipe de PB considère un moyen interne d'interagir avec le titre des colonnes sur tous les OS

Une solution pour Linux, MacOS et Windows:
http://www.purebasic.fr/english/viewtop ... 36&start=4