Création d'un bouton

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Création d'un bouton

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

La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Création d'un bouton

Message 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:
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Création d'un bouton

Message par dayvid »

La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Création d'un bouton

Message par Kwai chang caine »

Joli, mais le dommage, c'est que le bouton n'ai pas deux etats
Un appuyé et un relaché :roll:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Création d'un bouton

Message 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 ?
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Création d'un bouton

Message 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
Configuration : Windows 11 Famille 64-bit - PB 6.20 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
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Re: Création d'un bouton

Message par SPH »

Le dayvid, il a vraiment envie de faire des boutons !! :mrgreen:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Répondre