Page 1 sur 1

Création d'un bouton

Publié : ven. 15/avr./2011 12:56
par dayvid
Salut

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()


Re: Création d'un bouton

Publié : sam. 16/avr./2011 13:55
par dayvid
Oki j'ai compris, je fait pas c..... et je remballe mon code de m..... :wink:
je vais me débrouillé tous seule comme un grand garçon :P

En gros je viendrait poster quand j'aurais un véritable problème :wink:

Re: Création d'un bouton

Publié : mer. 20/avr./2011 12:57
par dayvid

Re: Création d'un bouton

Publié : jeu. 21/avr./2011 13:27
par Kwai chang caine
Joli, mais le dommage, c'est que le bouton n'ai pas deux etats
Un appuyé et un relaché :roll:

Re: Création d'un bouton

Publié : ven. 22/avr./2011 13:52
par dayvid
Qu'est ce que j'ai dit mon grand KCC, j'ai pas fait les évènement
c'est qu'un brouillon quoi, quelqu'un veut m'aider ?

Re: Création d'un bouton

Publié : ven. 22/avr./2011 18:53
par falsam
Kwai chang caine a écrit :Joli, mais le dommage, c'est que le bouton n'ai pas deux etats
Un appuyé et un relaché :roll:
Rhooooo ........ KKC je te sens tristoune. J'espére que ce lien te redonnera le :)
http://www.purebasic.fr/french/viewtopi ... =6&t=11783

Re: Création d'un bouton

Publié : ven. 22/avr./2011 19:37
par SPH
Le dayvid, il a vraiment envie de faire des boutons !! :mrgreen: