Je reposte ici un autre programme pour dessiner des boutons !
mais cette fois-ci en bien plus simple et avec plus de possibilité (je pense)
Par contre, j'aimerais bien qu'on m'aide pour la gestion des évènements de ceux-ci
je voudrait gérer tous les bouton de la souris (et notament faire un comportement IDENTIQUE aux bouton de Windows)
Ya une image a inclure mais je l'es oublier (10*10 environ), c'étais comme une pièce en or
Code : Tout sélectionner
Procedure.l Option_Fenetre(SystemMenu, TitleBar, MinimizeGadget, MaximizeGadget, SizeGadget, ScreenCentered, WindowCentered, Tool, Minimize, Maximize, BorderLess, NoGadgets, Invisible)
If SystemMenu = 1
Option_Fenetre|#PB_Window_SystemMenu
EndIf
If TitleBar = 1
Option_Fenetre|#PB_Window_TitleBar
EndIf
If MinimizeGadget = 1
Option_Fenetre|#PB_Window_MinimizeGadget
EndIf
If MaximizeGadget = 1
Option_Fenetre|#PB_Window_MaximizeGadget
EndIf
If SizeGadget = 1
Option_Fenetre|#PB_Window_SizeGadget
EndIf
If ScreenCentered = 1
Option_Fenetre|#PB_Window_ScreenCentered
EndIf
If WindowCentered = 1
Option_Fenetre|#PB_Window_WindowCentered
EndIf
If Tool = 1
Option_Fenetre|#PB_Window_Tool
EndIf
If Minimize = 1
Option_Fenetre|#PB_Window_Minimize
EndIf
If Maximize = 1
Option_Fenetre|#PB_Window_Maximize
EndIf
If BorderLess = 1
Option_Fenetre|#PB_Window_BorderLess
EndIf
If NoGadgets = 1
Option_Fenetre|#PB_Window_NoGadgets
EndIf
If Invisible = 1
Option_Fenetre|#PB_Window_Invisible
EndIf
ProcedureReturn Option_Fenetre
EndProcedure
Numero_Fenetre_1 = 1
Position_X_Fenetre_1 = 440
Position_Y_Fenetre_1 = 170
Largeur_Fenetre_1 = 600
Hauteur_Fenetre_1 = 300
Titre_Fenetre_1$ = "Fenêtre"
Option_Fenetre_1 = Option_Fenetre(1, 1, 1, MaximizeGadget, SizeGadget, 1, WindowCentered, Tool, Minimize, Maximize, BorderLess, NoGadgets, Invisible)
;- Image Plugins
UsePNGImageDecoder()
;- Image Globals
Global Image1
;- Catch Images
Image1 = CatchImage(1, ?Image1)
;- Images
DataSection
Image1:
IncludeBinary "Joyaux 6.png"
EndDataSection
#Style_Texte_Gras = #PB_Font_Bold
#Style_Texte_Italique = #PB_Font_Italic
#Style_Texte_Soulignier = #PB_Font_Underline
#Style_Texte_Barrer = #PB_Font_StrikeOut
#Texte_Haute_Caliter = #PB_Font_HighQuality
Global NumeroIDBouton, ImageFaceBouton, XBouton, YBouton, LargeurBouton, HauteurBouton, CouleurSousBouton
Procedure CreationImageBouton(X, Y, Largeur, Hauteur)
If StartDrawing(ImageOutput(ImageFaceBouton))
DrawingMode(#PB_2DDrawing_AlphaBlend)
If Largeur > 0 And Hauteur > 0
DrawImage(Image1, X, Y, Largeur, Hauteur)
Else
DrawImage(Image1, X, Y)
EndIf
Else
MessageRequester("Erreur !", "Impossible de dessiner l'image sur le bouton !", 16)
EndIf
StopDrawing()
EndProcedure
Procedure CreationTexteBouton(X, Y, Texte$, Angle, Couleur, NomPolice$, Taille, Style)
FontID = LoadFont(#PB_Any, NomPolice$, Taille, Style)
If StartDrawing(ImageOutput(ImageFaceBouton))
DrawingMode(#PB_2DDrawing_Transparent)
If FontID
DrawingFont(FontID(FontID))
DrawRotatedText(X, Y, Texte$, Angle, Couleur)
Else
MessageRequester("Erreur !", "Impossible de charger la police demander pour le texte du bouton !", 16)
EndIf
StopDrawing()
Else
MessageRequester("Erreur !", "Impossible de dessiner le texte du bouton !", 16)
EndIf
EndProcedure
Procedure CreationBordureHauteBouton(Epesseur, CouleurDegrader1, CouleurDegrader2)
If StartDrawing(ImageOutput(ImageFaceBouton))
DrawingMode(#PB_2DDrawing_Gradient)
FrontColor(CouleurDegrader1)
BackColor(CouleurDegrader2)
LinearGradient(LargeurBouton, HauteurBouton, 1, HauteurBouton)
Box(XDuBouton, YDuBouton, LargeurBouton, Epesseur)
StopDrawing()
Else
MessageRequester("Erreur !", "Impossible de dessiner la bordure haute du bouton !", 16)
EndIf
EndProcedure
Procedure CreationBordureBasBouton(Epesseur, CouleurDegrader1, CouleurDegrader2)
If StartDrawing(ImageOutput(ImageFaceBouton))
DrawingMode(#PB_2DDrawing_Gradient)
FrontColor(CouleurDegrader1)
BackColor(CouleurDegrader2)
LinearGradient(LargeurBouton, HauteurBouton, 1, HauteurBouton)
Box(XDuBouton, YDuBouton + HauteurBouton - Epesseur, LargeurBouton, Epesseur)
StopDrawing()
Else
MessageRequester("Erreur !", "Impossible de dessiner la bordure bas du bouton !", 16)
EndIf
EndProcedure
Procedure CreationBordureGaucheBouton(Epesseur, CouleurDegrader1, CouleurDegrader2)
If StartDrawing(ImageOutput(ImageFaceBouton))
DrawingMode(#PB_2DDrawing_Gradient)
FrontColor(CouleurDegrader1)
BackColor(CouleurDegrader2)
LinearGradient(1, HauteurBouton, 1, 1)
Box(XDuBouton, YDuBouton, Epesseur, HauteurBouton)
StopDrawing()
Else
MessageRequester("Erreur !", "Impossible de dessiner la bordure gauche du bouton !", 16)
EndIf
EndProcedure
Procedure CreationBordureDroiteBouton(Epesseur, CouleurDegrader1, CouleurDegrader2)
If StartDrawing(ImageOutput(ImageFaceBouton))
DrawingMode(#PB_2DDrawing_Gradient)
FrontColor(CouleurDegrader1)
BackColor(CouleurDegrader2)
LinearGradient(1, HauteurBouton, 1, 1)
Box(XDuBouton + LargeurBouton - Epesseur, YDuBouton, Epesseur, HauteurBouton)
StopDrawing()
Else
MessageRequester("Erreur !", "Impossible de dessiner la bordure droite du bouton !", 16)
EndIf
EndProcedure
Procedure CouleurFaceBouton(CouleurDegrader1, CouleurDegrader2, ModeDegrader)
If StartDrawing(ImageOutput(ImageFaceBouton))
DrawingMode(#PB_2DDrawing_Gradient)
FrontColor(CouleurDegrader1)
BackColor(CouleurDegrader2)
If ModeDegrader <= 0
LinearGradient(LargeurBouton, HauteurBouton, 1, HauteurBouton)
ElseIf ModeDegrader >= 1
LinearGradient(1, HauteurBouton, 1, 1)
EndIf
Box(0, 0, LargeurBouton, HauteurBouton, ArrondiBouton)
StopDrawing()
Else
MessageRequester("Erreur !", "Impossible de dessiner la face du bouton !", 16)
EndIf
EndProcedure
Procedure CreationFaceBouton(XDuBouton, YDuBouton, LargeurDuBouton, HauteurDuBouton, CouleurSousLeBouton)
XBouton = XDuBouton
YBouton = YDuBouton
LargeurBouton = LargeurDuBouton
HauteurBouton = HauteurDuBouton
CouleurSousBouton = CouleurSousLeBouton
If CouleurSousBouton <= 0
CouleurSousBouton = RGB(240, 240, 240)
EndIf
If NumeroIDBouton <= 0
NumeroIDBouton = 1
EndIf
If LargeurBouton <= 0
LargeurBouton = 1
EndIf
If HauteurBouton <= 0
HauteurBouton = 1
EndIf
If XBouton <= 0
XBouton = 1
EndIf
If YBouton <= 0
YBouton = 1
EndIf
ImageFaceBouton = CreateImage(#PB_Any, LargeurBouton, HauteurBouton)
If ImageFaceBouton <> 0
If StartDrawing(ImageOutput(ImageFaceBouton))
DrawingMode(#PB_2DDrawing_Default)
Box(0, 0, LargeurBouton, HauteurBouton, CouleurSousBouton)
StopDrawing()
Else
MessageRequester("Erreur !", "Impossible de dessiner sur l'image !", 16)
EndIf
Else
MessageRequester("Erreur !", "Impossible de dessiner le bouton !", 16)
EndIf
EndProcedure
Procedure CreationBouton(NumeroIDDuBouton)
NumeroIDBouton = NumeroIDDuBouton
Shared Numero_Fenetre_1, XBouton, YBouton, LargeurBouton, HauteurBouton
If UseGadgetList(WindowID(Numero_Fenetre_1))
If ImageGadget(NumeroIDBouton, XBouton, YBouton, LargeurBouton, HauteurBouton, ImageID(ImageFaceBouton))
; L'image a été crée correctement
Else
MessageRequester("Erreur !", "Impossible de crée l'image gadget du bouton !", 16)
EndIf
Else
MessageRequester("Erreur !", "Impossible de crée le gadget bouton !", 16)
EndIf
EndProcedure
Procedure Procedure_Fenetre()
Shared Numero_Fenetre_1, Position_X_Fenetre_1, Position_Y_Fenetre_1, Largeur_Fenetre_1, Hauteur_Fenetre_1, Titre_Fenetre_1$, Option_Fenetre_1
If OpenWindow(Numero_Fenetre_1, Position_X_Fenetre_1, Position_Y_Fenetre_1, Largeur_Fenetre_1, Hauteur_Fenetre_1, Titre_Fenetre_1$, Option_Fenetre_1)
CreationFaceBouton(10, 10, 120, 35, RGB(240, 240, 240))
CouleurFaceBouton(RGB(240, 240, 240), RGB(240, 240, 240), 0)
CreationImageBouton(10, 4, 0, 0)
CreationTexteBouton(40, 9, "Un bouton", 0, RGB(0, 0, 255), "Arial", 10, #Texte_Haute_Caliter)
CreationBordureHauteBouton(2, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureBasBouton(2, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureGaucheBouton(2, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureDroiteBouton(2, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBouton(1)
CreationFaceBouton(10, 50, 120, 35, RGB(240, 240, 240))
CouleurFaceBouton(RGB(0, 0, 255), RGB(255, 255, 255), 1)
;CreationImageBouton(10, 4, 0, 0)
CreationTexteBouton(30, 9, "Un bouton", 0, RGB(0, 0, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationBordureHauteBouton(1, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureBasBouton(1, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureGaucheBouton(1, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureDroiteBouton(1, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBouton(2)
CreationFaceBouton(140, 50, 120, 35, RGB(240, 240, 240))
CouleurFaceBouton(RGB(255, 255, 255), RGB(0, 0, 255), 1)
;CreationImageBouton(10, 4, 0, 0)
CreationTexteBouton(30, 9, "Un bouton", 0, RGB(0, 0, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationBordureHauteBouton(1, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureBasBouton(1, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureGaucheBouton(1, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureDroiteBouton(1, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBouton(3)
CreationFaceBouton(140, 10, 120, 35, RGB(240, 240, 240))
CouleurFaceBouton(RGB(240, 240, 240), RGB(240, 240, 240), 0)
CreationImageBouton(10, 4, 0, 0)
CreationTexteBouton(40, 9, "Un bouton", 0, RGB(255, 0, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationBordureGaucheBouton(1, RGB(255, 255, 255), RGB(255, 255, 255))
CreationBordureHauteBouton(1, RGB(255, 255, 255), RGB(255, 255, 255))
CreationBordureDroiteBouton(1, RGB(160, 160, 160), RGB(160, 160, 160))
CreationBordureBasBouton(1, RGB(160, 160, 160), RGB(160, 160, 160))
CreationBouton(4)
CreationFaceBouton(270, 50, 120, 35, RGB(240, 240, 240))
CouleurFaceBouton(RGB(255, 255, 255), RGB(0, 0, 255), 0)
;CreationImageBouton(10, 4, 0, 0)
CreationTexteBouton(30, 9, "Un bouton", 0, RGB(0, 0, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationBordureHauteBouton(1, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureBasBouton(1, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureGaucheBouton(1, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureDroiteBouton(1, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBouton(5)
CreationFaceBouton(270, 10, 120, 35, RGB(240, 240, 240))
CouleurFaceBouton(RGB(200, 200, 200), RGB(200, 200, 200), 0)
CreationImageBouton(90, 4, 0, 0)
CreationTexteBouton(20, 9, "Un bouton", 0, RGB(255, 0, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationBordureGaucheBouton(1, RGB(255, 255, 255), RGB(255, 255, 255))
CreationBordureHauteBouton(1, RGB(255, 255, 255), RGB(255, 255, 255))
CreationBordureDroiteBouton(1, RGB(160, 160, 160), RGB(160, 160, 160))
CreationBordureBasBouton(1, RGB(160, 160, 160), RGB(160, 160, 160))
CreationBouton(6)
CreationFaceBouton(400, 50, 120, 35, RGB(240, 240, 240))
CouleurFaceBouton(RGB(0, 0, 255), RGB(255, 255, 255), 0)
;CreationImageBouton(10, 4, 0, 0)
CreationTexteBouton(30, 9, "U", 0, RGB(255, 0, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationTexteBouton(39, 9, "n", 0, RGB(0, 150, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationTexteBouton(50, 9, "b", 0, RGB(0, 0, 255), "Arial", 10, #Texte_Haute_Caliter)
CreationTexteBouton(57, 9, "o", 0, RGB(255, 0, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationTexteBouton(64, 9, "u", 0, RGB(0, 150, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationTexteBouton(71, 9, "t", 0, RGB(0, 0, 255), "Arial", 10, #Texte_Haute_Caliter)
CreationTexteBouton(75, 9, "o", 0, RGB(255, 0, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationTexteBouton(82, 9, "n", 0, RGB(0, 150, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationBordureGaucheBouton(2, RGB(255, 0, 0), RGB(255, 0, 0))
CreationBordureHauteBouton(2, RGB(0, 0, 0), RGB(0, 0, 0))
CreationBordureDroiteBouton(2, RGB(255, 190, 0), RGB(255, 190, 0))
CreationBordureBasBouton(2, RGB(0, 150, 0), RGB(0, 150, 0))
CreationBouton(7)
CreationFaceBouton(400, 10, 120, 35, RGB(240, 240, 240))
CouleurFaceBouton(RGB(200, 200, 200), RGB(200, 200, 200), 0)
CreationImageBouton(47, 6, 0, 0)
CreationTexteBouton(20, 27, "Un", 90, RGB(0, 150, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationTexteBouton(40, 12, "B", 0, RGB(0, 0, 255), "Arial", 10, #Texte_Haute_Caliter)
CreationTexteBouton(68, 12, "ut", 0, RGB(0, 0, 255), "Arial", 10, #Texte_Haute_Caliter)
CreationImageBouton(76, 6, 0, 0)
CreationTexteBouton(97, 12, "o", 0, RGB(255, 0, 0), "Arial", 10, #Texte_Haute_Caliter)
CreationBordureGaucheBouton(1, RGB(255, 255, 255), RGB(255, 255, 255))
CreationBordureHauteBouton(1, RGB(255, 255, 255), RGB(255, 255, 255))
CreationBordureDroiteBouton(1, RGB(160, 160, 160), RGB(160, 160, 160))
CreationBordureBasBouton(1, RGB(160, 160, 160), RGB(160, 160, 160))
CreationBouton(8)
CreationFaceBouton(10, 100, 120, 60, RGB(240, 240, 240))
CouleurFaceBouton(RGB(255, 190, 0), RGB(255, 0, 0), 1)
CreationImageBouton(10, 15, 0, 0)
CreationTexteBouton(40, 9, "Un bouton", 0, RGB(0, 0, 255), "Arial", 10, #Texte_Haute_Caliter)
CreationTexteBouton(40, 25, "MultiLigne", 0, RGB(0, 0, 255), "Arial", 10, #Texte_Haute_Caliter)
CreationBordureHauteBouton(2, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureBasBouton(2, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureGaucheBouton(2, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBordureDroiteBouton(2, RGB(255, 0, 0), RGB(253, 162, 0))
CreationBouton(9)
Repeat ; Start of the event loop
Event = WaitWindowEvent(1) ; This line waits until an event is received from Windows
WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadget() ; Is it a gadget event?
EventType = EventType() ; The event type
EventMenu = EventMenu() ; The event Menu
If Event = #PB_Event_Gadget
If GadgetID = 0
ElseIf GadgetID = 0
ElseIf GadgetID = 0
EndIf
ElseIf Event = #PB_Event_Menu
If EventMenu = 0
ElseIf EventMenu = 0
ElseIf EventMenu = 0
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
EndIf
EndProcedure
Procedure_Fenetre()