ScrollCanvas
- microdevweb
- Messages : 1800
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
ScrollCanvas
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
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: ScrollCanvas
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.
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
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- microdevweb
- Messages : 1800
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: ScrollCanvas
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
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: ScrollCanvas
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.
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.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- microdevweb
- Messages : 1800
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: ScrollCanvas
En effet, agis comme un clique avec le Step renseigné. Je devrais le modifié pour déplacer le bt à l'endroit du clique
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: ScrollCanvas
Ce n'est pas un souci de positionnement du bouton. le callback n'est pas appelé quand on clique sur ton scrollcanvas.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: ScrollCanvas
Après discussion sur FreeChat Microdevweb a modifié ScroolCanvas.pbi.
Mon code de test fonctionne. Bravo et merci Micro pour ce partage
Mon code de test fonctionne. Bravo et merci Micro pour ce partage
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- microdevweb
- Messages : 1800
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: ScrollCanvas
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
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
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.