Page 1 sur 1
ScrollCanvas
Publié : mer. 27/avr./2016 9:51
par microdevweb
ScrollCanvas est la première partie d'un projet (MaxiList), il permet l'ajout d’ascenseurs dans un canvas. J'ai repris le code d'un ancien module qui à été amélioré.
IMPORTANT: Veuillez cocher
Activer la gestion des Threads dans les options du compilateur PureBasic
Le module et le code de teste sur
https://github.com/microdevweb/ScrollCanvas
Re: ScrollCanvas
Publié : mer. 27/avr./2016 10:58
par falsam
Présentation un peu brut de décoffrage. Personnellement je n'ai rien compris.
Apparemment ton module fonctionne que si un canvas est présent. Ton exemple Main.pb n'étant pas simple, j'ai fait un code plus simple MAIS qui visuellement ne fonctionne pas. Pas de scrollbar à l'horizon.
Code : Tout sélectionner
XIncludeFile "ScroolCanvas.pbi"
Enumeration Window
#MainForm
EndEnumeration
Enumeration Gadget
#Canvas
#Scroll
EndEnumeration
;Récupérer la valeur du ScrollBar
Procedure EventScroll(IdScroll,Value,MyData)
Debug "Valeur " + ScrollCanvas::GetValue(#Scroll)
EndProcedure
OpenWindow(#MainForm,0,0,800,600,"Teste ScrollCanvas",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CanvasGadget(#Canvas,10, 10, 780,580)
ScrollCanvas::InitScroll(#Canvas,@EventScroll())
ScrollCanvas::Add(#Scroll, 50, 40, 20, 150, 0,100, 10, 0, 0)
ScrollCanvas::Draw() ;Ajouté suite à la réponse de microdevweb
Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow
Re: ScrollCanvas
Publié : mer. 27/avr./2016 11:01
par microdevweb
Arpès l'ajout de tous les scroll on les dessine avec Draw()
Code : Tout sélectionner
XIncludeFile "ScroolCanvas.pbi"
Enumeration Window
#MainForm
EndEnumeration
Enumeration Gadget
#Canvas
EndEnumeration
Procedure EventScroll(IdScroll,Value,MyData)
Debug "Valeur " + ScrollCanvas::GetValue(#Scroll)
EndProcedure
OpenWindow(#MainForm,0,0,800,600,"Teste ScrollCanvas",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CanvasGadget(#Canvas,10, 10, 780,580)
ScrollCanvas::InitScroll(#Canvas,@EventScroll())
ScrollCanvas::Add(#PB_Any,50,40,10,150,0,1000,10,0,0)
ScrollCanvas::Draw()
Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow
Re: ScrollCanvas
Publié : mer. 27/avr./2016 11:12
par falsam
Merci pour cette réponse. J'ai modifié mon code en conséquence et j'ai aussi modifié la procédure callback pour lire la valeur du curseur.
La valeur est bien retournée quand on glisse le curseur mais pas quand on clique sur une intervalle entre le curseur et une des extrémités du ScrollCanvas.
Re: ScrollCanvas
Publié : mer. 27/avr./2016 11:14
par microdevweb
En effet, agis comme un clique avec le Step renseigné. Je devrais le modifié pour déplacer le bt à l'endroit du clique
Re: ScrollCanvas
Publié : mer. 27/avr./2016 11:18
par falsam
Ce n'est pas un souci de positionnement du bouton. le callback n'est pas appelé quand on clique sur ton scrollcanvas.
Re: ScrollCanvas
Publié : mer. 27/avr./2016 11:28
par falsam
Après discussion sur
FreeChat Microdevweb a modifié ScroolCanvas.pbi.
Mon code de test fonctionne. Bravo et merci Micro pour ce partage

Re: ScrollCanvas
Publié : mer. 27/avr./2016 11:32
par microdevweb
De rien

Re: ScrollCanvas
Publié : mer. 27/avr./2016 21:05
par Shadow
Pas mal
Note:
1 - Serais bien de pouvoir personnaliser les couleurs.
2 - L'objet cliqué (Bouton souris gauche enfoncé) devrais garder l'action de la souris.
Par exemple si je clique (Bouton souris gauche enfoncé) sur le bouton d’ascenseur (Le truc du milieux)
Celui-ci devrais se déplacer suivent la position de la souris comme en vraie quoi
Merci du partage
