J'aimerais scroller 3 listicons avec un scrollbar extérieur.
Code : Tout sélectionner
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration
#ListIcon_0
#ListIcon_1
#ListIcon_2
#ScrollBar_0
#Button_0
EndEnumeration
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_Window_0()
If OpenWindow(#Window_0, 435, 70, 463, 656, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
ListIconGadget(#ListIcon_0, 20, 25, 130, 300, "", 100, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines|#LVS_NOCOLUMNHEADER|#LVS_NOSORTHEADER|#LVS_SORTASCENDING)
SendMessage_(GadgetID(#ListIcon_0), #LVM_SETCOLUMNWIDTH, 0, #LVSCW_AUTOSIZE_USEHEADER)
ListIconGadget(#ListIcon_1, 150, 25, 130, 300, "", 100, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines|#LVS_NOCOLUMNHEADER|#LVS_NOSORTHEADER|#LVS_SORTASCENDING |#LVS_NOSCROLL |#WS_VSCROLL)
SendMessage_(GadgetID(#ListIcon_1), #LVM_SETCOLUMNWIDTH, 0, #LVSCW_AUTOSIZE_USEHEADER)
ListIconGadget(#ListIcon_2, 280, 25, 130, 300, "", 100, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines|#LVS_NOCOLUMNHEADER|#LVS_NOSORTHEADER|#LVS_SORTASCENDING |#LVS_NOSCROLL |#WS_VSCROLL)
SendMessage_(GadgetID(#ListIcon_2), #LVM_SETCOLUMNWIDTH, 0, #LVSCW_AUTOSIZE_USEHEADER)
ScrollBarGadget(#ScrollBar_0, 415, 25, 30, 295, 0, 100, 5, #PB_ScrollBar_Vertical)
ButtonGadget(#Button_0,10,360,50,30,"->Fin")
For i=0 To 50
AddGadgetItem(#ListIcon_0,-1, "Elément "+Str(i))
AddGadgetItem(#ListIcon_1,-1, "Elément "+Str(i))
AddGadgetItem(#ListIcon_2,-1, "Elément "+Str(i))
Next i
SetGadgetAttribute(#ScrollBar_0, #PB_ScrollBar_Maximum, 50)
EndIf
EndProcedure
OpenWindow_Window_0()
;{- Event loop
Repeat
Event = WaitWindowEvent()
Select Event
; ///////////////////
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #ListIcon_0
ElseIf EventGadget = #ListIcon_1
ElseIf EventGadget = #ListIcon_2
ElseIf EventGadget = #ScrollBar_0
n=GetGadgetState(#ScrollBar_0)
Debug n
SendMessage_(GadgetID(#ListIcon_0), #LVM_ENSUREVISIBLE, n, #True)
SendMessage_(GadgetID(#ListIcon_1), #LVM_ENSUREVISIBLE, n, #True)
SendMessage_(GadgetID(#ListIcon_2), #LVM_ENSUREVISIBLE, n, #True)
ElseIf EventGadget = #Button_0
;Debug "ok"
SendMessage_(GadgetID(#ListIcon_0), #LVM_ENSUREVISIBLE, CountGadgetItems(#ListIcon_0)-1, #True)
SendMessage_(GadgetID(#ListIcon_1), #LVM_ENSUREVISIBLE, CountGadgetItems(#ListIcon_1)-1, #True)
SendMessage_(GadgetID(#ListIcon_2), #LVM_ENSUREVISIBLE, CountGadgetItems(#ListIcon_2)-1, #True)
EndIf
; ////////////////////////
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
CloseWindow(#Window_0)
Break
EndIf
EndSelect
ForEver
;
;}

Mesa.