Vous allez voir avec ce nouveau code comment créer son propre bouton graphique.
Vous aurez besoin des trois images suivantes.
- Bouton état normal :
- Bouton état survolé :
- Bouton état cliqué
Ces trois images ainsi que le code qui suit sont téléchargeables depuis la plateforme collaborative GitHub
https://github.com/pbcodex/Canvas-Butto ... master.zip
Code : Tout sélectionner
EnableExplicit
IncludePath "assets"
Enumeration Window
#MainForm
EndEnumeration
Enumeration Gadget
#CanvasButton
EndEnumeration
Global ImageButtonHover, ImageButtonUp.i, ImageButtonDown.i
;Plan du code
Declare Start()
Declare OnMouse()
Declare Exit()
Start() ;On commence
Procedure Start()
;Création des images : Lecture des images se trouvant dans la Data Section
UsePNGImageDecoder() ;Les images sont aux format PNG
ImageButtonHover = CatchImage(#PB_Any, ?ButtonHover) ;Bouton Survolé
ImageButtonUp = CatchImage(#PB_Any, ?ButtonUp) ;Bouton état normal
ImageButtonDown = CatchImage(#PB_Any, ?ButtonDown) ;Bouton cliqué
;Mise en place de la fenêtre de l'application
OpenWindow(#MainForm, 0, 0, 500, 250, "Canvas Button", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
;Mise en place du canvas gadget représentant le bouton
CanvasGadget(#CanvasButton, 387, 20, 99, 40)
;Image par défaut du canvas
SetGadgetAttribute(#CanvasButton, #PB_Canvas_Image , ImageID(ImageButtonUp))
;Procédure à déclencher si activité de la souris
BindGadgetEvent(#CanvasButton, @OnMouse())
;Procédure à déclencher quand on quitte l'application
BindEvent(#PB_Event_CloseWindow, @Exit())
Repeat : WaitWindowEvent() : ForEver
EndProcedure
Procedure OnMouse()
Protected Action = EventType()
Select Action
Case #PB_EventType_LeftButtonDown
SetGadgetAttribute(#CanvasButton, #PB_Canvas_Image , ImageID(ImageButtonDown))
Case #PB_EventType_MouseLeave
SetGadgetAttribute(#CanvasButton, #PB_Canvas_Image , ImageID(ImageButtonUp))
Case #PB_EventType_MouseEnter, #PB_EventType_LeftButtonUp
SetGadgetAttribute(#CanvasButton, #PB_Canvas_Image , ImageID(ImageButtonHover))
Default
EndSelect
EndProcedure
Procedure Exit()
End
EndProcedure
;La data section va permettre d'inclure les images dans l'éxécutable
DataSection
ButtonUp:
IncludeBinary "buttonup.png"
ButtonHover:
IncludeBinary "buttonhover.png"
ButtonDown:
IncludeBinary "buttondown.png"
EndDataSection