ScrollCanvas

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

ScrollCanvas

Message par microdevweb »

Image

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
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: ScrollCanvas

Message 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
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%
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: ScrollCanvas

Message 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
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: ScrollCanvas

Message 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.
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%
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: ScrollCanvas

Message 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
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: ScrollCanvas

Message par falsam »

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%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: ScrollCanvas

Message par falsam »

Après discussion sur FreeChat Microdevweb a modifié ScroolCanvas.pbi.

Mon code de test fonctionne. Bravo et merci Micro pour ce partage :wink:
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%
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: ScrollCanvas

Message par microdevweb »

De rien :wink:
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: ScrollCanvas

Message par Shadow »

Pas mal :wink: :)

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.
Répondre