Image de fond et centrage de gadget

Informations pour bien débuter en PureBasic
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Image de fond et centrage de gadget

Message par microdevweb »

Bonjour à tous,

FR4NK13 m'a posé une question sur skype à ce sujet, plutôt que de lui montré un exemple je poste sur le forum pour que cela profite éventuellement à d'autres

Etape 1 enregistrez l'image ci-dessous dans le même répertoire que le fichier Pb avec le nom "Logo.png"

Image

Et voici le code

Code : Tout sélectionner

; Placer une image de fond et centrer des boutons dans une fenêtre
; AUTHOR : microdevWeb
;

Enumeration 
  #MainForm
  #MainCanvas
  #Bt_play
  #Bt_exit
  #IMG_BG
EndEnumeration

EnableExplicit ; les variable doivent être déclarée
UsePNGImageDecoder() ; on va traité des images png
; on charge l'image
If Not LoadImage(#IMG_BG,"Logo.png")
  MessageRequester("ERRERU chargement image","L'image n'a pas peu être chargée",#PB_MessageRequester_Error)
  End
EndIf
; procédure pour dessiner l'image
Procedure drawBg()
  Protected wc = GadgetWidth(#MainCanvas) ; largeur du canvas
  Protected hc = GadgetHeight(#MainCanvas); hauteur du canvas
  Protected wi = ImageWidth(#IMG_BG)      ; largeur de l'image de fond
  Protected hi = ImageHeight(#IMG_BG)     ; hauteur de l'image de fond
  Protected x = (wc / 2) - (wi /2)        ; le centre en X
  Protected y = (hc / 2) - (hi /2)        ; le centre en y
  StartDrawing(CanvasOutput(#MainCanvas))
  ; on efface avec la même couleur que le fond de l'image
  Box(0,0,wc,hc,$FF666666)
  ; on dessine l'image
  DrawImage(ImageID(#IMG_BG),x,y)
  StopDrawing()
EndProcedure
; procédure pour placer les boutons
Procedure positionButtons()
  Protected wc = GadgetWidth(#MainCanvas) ; largeur du canvas
  Protected hc = GadgetHeight(#MainCanvas); hauteur du canvas
  Protected x = (wc/2) - 50
  ; pour le centrage je remonte le premier bouton de 75 pxl
  Protected y = (hc/2) - 75
  ResizeGadget(#Bt_play,x,y,#PB_Ignore,#PB_Ignore)
  ResizeGadget(#Bt_exit,x,y + 75,#PB_Ignore,#PB_Ignore)
EndProcedure
; Procédure pour quitter le program
Procedure exit()
  CloseWindow(#MainForm)
  End
EndProcedure
; procédure de redimentionnent
Procedure eventResize()
  ; je redimentionne le canvas
  ResizeGadget(#MainCanvas,0,0,WindowWidth(#MainForm),WindowHeight(#MainForm))
  ; je dessine le fond
  drawBg()
  ; je repositionne les bouttons
  positionButtons()
EndProcedure
; Procédure de démarage du program
Procedure start()
  ; je charge l'image
  ; ouverture de la fenêtre principal
  OpenWindow(#MainForm,0,0,800,600,"Fond d'écran",#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget)
  
  ; on place un canvas pour le fond d'écran qui servira également de contaioner
  CanvasGadget(#MainCanvas,0,0,800,600,#PB_Canvas_Container)
  ; on dessine l'image
  drawBg()
  ; j'ajoute des boutons que je positonnerais plus avec une procédure
  ButtonGadget(#Bt_play,0,0,100,30,"Jouer")
  ButtonGadget(#Bt_exit,0,0,100,30,"Quitter")
  ; je ferme le container
  CloseGadgetList()
  ; je positionne les boutons
  positionButtons()
  
  ; mise en place des callbacks
  BindEvent(#PB_Event_CloseWindow,@exit(),#MainForm)
  BindEvent(#PB_Event_SizeWindow,@eventResize(),#MainForm)
EndProcedure

start()

Repeat : WaitWindowEvent() : ForEver

Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Image de fond et centrage de gadget

Message par GallyHC »

Bonjour,

Ce n'est pas grand chose mais ton calcul de par exemple "Protected x = (wc / 2) - (wi /2)", peut être facilement simplifier avec:

Code : Tout sélectionner

  Protected x = (wc - wi) / 2        ; le centre en X
  Protected y = (hc - hi) / 2        ; le centre en y
Bon je n'ai pas tout regarder, mais c'est surtout cela que j'ai vu en premier.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Image de fond et centrage de gadget

Message par microdevweb »

oui +1 GallyHC
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
FR4NK13
Messages : 72
Inscription : mar. 03/juil./2018 9:30

Re: Image de fond et centrage de gadget

Message par FR4NK13 »

Bonjour tout le monde,

Merci Microdev mais je n'arrive à adapter mon code avec le tiens, il y a comme une incompatibilité quelque part avec les valeurs de dimensions que tu m'avais fait la dernière fois et celles-ci, et c'est assez complexe pour moi alors je ne sais pas l'adapter...

Je vais donc donner monde code brut qui marche très bien, et si quelqu'un peut me faire la fusion des deux codes je le remercie d'avance :)

Code : Tout sélectionner

EnableExplicit

Enumeration
  
  #Texte
  #Fenetre_A_Propos
  #A_Propos
  #Bouton_Ferme_A_Propos
  #Texte_A_Propos1
  #Texte_A_Propos2
  #Texte_A_Propos3
  
  #Menu
  #Quitter
  #Regles
  
  #Pikachu_Sound
  #Evoli_Sound
  #Rocabot_Sound
  
  #Pikachu
  #Evoli
  #Rocabot
  
  
EndEnumeration

InitSound()           
UseOGGSoundDecoder()  


Global.l event 
Global Formwith = 800


Declare Checkpoint()
Declare Quitter()
Declare Regles()


;=============================================================================================== 


Procedure Selection()
  
      LoadSound(#Pikachu_sound, "Pikachu.ogg")
      LoadSound(#Evoli_sound, "Evoli.ogg")
      LoadSound(#Rocabot_sound, "Rocabot.ogg")
      
  Select EventGadget()
  
    Case #Pikachu
      
 PlaySound(#Pikachu_sound)
     IncludeFile  "Pika.pbi" 
      
    Case #Evoli
      PlaySound(#Evoli_sound)
      
    Case #Rocabot
    PlaySound(#Rocabot_sound)
  EndSelect
  
  EndProcedure
    

;===============================================================================================
  
  
Procedure Resize()
     
      Protected wf = WindowWidth(0,1),wh = WindowHeight(0,1),bw = GadgetWidth(0,1),bh = GadgetHeight(0,1)
     
    
      ResizeGadget(#Texte,(wf /2) - (bw /0.8),(wh /6.5) - (bh /2),#PB_Ignore,#PB_Ignore)     
      
      ResizeGadget(#Pikachu,(wf /5) - (bw /1),(wh /3.5) - (bh /2),#PB_Ignore,#PB_Ignore)  
      ResizeGadget(#Evoli,(wf /2) - (bw /1),(wh /3.5) - (bh /2),#PB_Ignore,#PB_Ignore)  
      ResizeGadget(#Rocabot,(wf /1.4) - (bw /10),(wh /3.5) - (bh /2),#PB_Ignore,#PB_Ignore)  
    
      EndProcedure  
   

;===============================================================================================
      
      
Procedure A_Propos()
  Protected iColor.i
  
  If OpenWindow(#Fenetre_A_Propos,153,40,260,115, "A Propos", #PB_Window_TitleBar|#PB_Window_BorderLess,WindowID(0)) 
    ; -> Normalement mettre le gadget de la fenêtre, exemple => WindowID(#Fenetre)
    
    SetWindowColor(#Fenetre_A_propos, RGB(150,150,150)) ; ---> Change la couleur de la fenêtre
    
    TextGadget(#Texte_A_Propos1,10, 10, 240, 20,"Pokémon, V.1",#PB_Text_Center) ; -> #PB_Text_Center -> Centre le texte dans la fenêtre   
    TextGadget(#Texte_A_Propos2,10, 30, 240, 20,"Jeu de stratégie",#PB_Text_Center)
    TextGadget(#Texte_A_Propos3,10, 50, 240, 20,"By Salomé DURTH - 2018",#PB_Text_Center)    
        
    ButtonGadget(#Bouton_Ferme_A_Propos,110,80,40,20,"Ok")
    
    For iColor = #Texte_A_Propos1 To #Texte_A_Propos3
      SetGadgetColor(iColor,#PB_Gadget_BackColor, RGB(150,150,150))        
      SetGadgetColor(iColor,#PB_Gadget_FrontColor,RGB(255, 255, 255))
    Next     
               
  EndIf       
        EndProcedure
         

;===============================================================================================
      
     
Procedure Fenetre()
          
          
  
  MessageRequester("Bienvenue","Amuse toi bien avec tes Pokémon !")
     
      If OpenWindow(0,0,0,formWith,600,"Pokémon V.1",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget)
        
       
        LoadImage(#Pikachu, "Pikachu.BMP") 
        LoadImage(#Evoli, "Evoli.BMP") 
        LoadImage(#Rocabot, "Rocabot.BMP") 
        
 
                
        ButtonImageGadget(#pikachu, 0, 0, 210, 280, ImageID(#pikachu)) 
        ButtonImageGadget(#Evoli, 0, 0, 210, 280, ImageID(#Evoli)) 
        ButtonImageGadget(#Rocabot, 0, 0, 210, 280, ImageID(#Rocabot)) 
        
        TextGadget(#Texte,10,10,240,30,"Salut ! Choisi ton Pokemon",#PB_Text_Center)
       
        
      CreateMenu(#Menu, WindowID(0))
      MenuTitle("Fichier")      
      MenuItem(#quitter, "Quitter")   
    
      MenuTitle("Aide")      
      MenuItem(#Regles, "Règles ")
      MenuItem(#A_Propos, "A propos")
       
        Resize()
      EndIf 
            
 
        BindEvent(#PB_Event_SizeWindow,@Resize(),0)
        BindEvent(#PB_Event_Gadget,@Selection())
        BindMenuEvent(#Menu,#quitter, @quitter())
        BindMenuEvent(#Menu,#A_Propos, @A_Propos())
        BindMenuEvent(#Menu,#Regles, @Regles())
    EndProcedure
    fenetre()
    

;===============================================================================================
    
    
Procedure quitter()
       End
      EndProcedure
    
    
;===============================================================================================
      
Procedure Regles()
        MessageRequester("Règles"," Jeu de stratégie. Choisis ton Pokémon et remporte les combats. ")
        EndProcedure
        
      
;===============================================================================================
    
    
  Repeat
  
Event = WaitWindowEvent()
Select Event  
    
; Evenements des gadgets  
Case #PB_Event_Gadget
    
Select EventGadget()            

   Case #Bouton_Ferme_A_Propos : CloseWindow(#Fenetre_A_propos)
     
 EndSelect
EndSelect
 
Until Event = #PB_Event_CloseWindow  
End
   
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Image de fond et centrage de gadget

Message par GallyHC »

Bonjour,

Déjà à quoi te sert les divisions par "1" (10/1 fera toujours 10 ^^)? Dans ton code, tu prend pour référence la taille que d'un seul Gadget "GadgetWidth (0)" et "GadgetHeight (0)", donc tu as forcement touts les gadgets de la même taille? (ce n'est pas le cas).

Voila un exemple avec juste un déplacement "x" des gadgets :

Code : Tout sélectionner

Procedure Resize()

  Protected.l wf = WindowWidth  (0)
  Protected.l wh = WindowHeight (0)
  ;Protected.l bw = GadgetWidth  (0)
  Protected.l bh = GadgetHeight (0)

  ResizeGadget(#Texte,(wf - GadgetWidth(#Texte)) / 2, (wh /6.5) - (bh /2), #PB_Ignore,#PB_Ignore)

  ResizeGadget(#Pikachu, (wf / 6) - (GadgetWidth(#Pikachu) / 2),        (wh /3.5) - (bh /2), #PB_Ignore, #PB_Ignore)
  ResizeGadget(#Evoli,   (wf - GadgetWidth(#Evoli)) / 2,                (wh /3.5) - (bh /2), #PB_Ignore, #PB_Ignore)
  ResizeGadget(#Rocabot, (wf - (wf / 6)) - (GadgetWidth(#Rocabot) / 2), (wh /3.5) - (bh /2), #PB_Ignore, #PB_Ignore)

EndProcedure
Une autre méthode et le redimensionnement de la largueur des gadgets eux même avec le centrage, ce qui donnerai :

Code : Tout sélectionner

Procedure Resize()

  Protected.l wf = WindowWidth  (0)
  Protected.l wh = WindowHeight (0)
  ;Protected.l bw = GadgetWidth  (0)
  Protected.l bh = GadgetHeight (0)
  
  ResizeGadget(#Texte,(wf - GadgetWidth(#Texte)) / 2, (wh /6.5) - (bh /2), #PB_Ignore,#PB_Ignore)

  ResizeGadget(#Pikachu, (wf / 6) - (wf / 6),         (wh /3.5) - (bh /2), wf / 3, #PB_Ignore)
  ResizeGadget(#Evoli,   (wf / 2) - (wf / 6),         (wh /3.5) - (bh /2), wf / 3, #PB_Ignore)
  ResizeGadget(#Rocabot, (wf - (wf / 6)) - (wf / 6),  (wh /3.5) - (bh /2), wf / 3, #PB_Ignore)

EndProcedure
je vais un peu expliquer une chose. Dans le resize de "#Pikachu" par exemple, tu as "(wf / 6) - (wf / 6)" et donc pourquoi le "- (wf / 6)"? cela est simple la taille que je fixe au gadget est de "wf / 3", donc si je veux le centre, il me faut ça propre moitié, ce qui donne "((wf / 3) / 2)". donc en simplification du calcul "/ 3" et "/2", je peux devisé par "6".

Ou cas ou voila un exemple:

Code : Tout sélectionner

wf = 875

Debug ((wf / 3) / 2)
Debug (wf / 6)
Cordialement,
GallyHC
Dernière modification par GallyHC le lun. 23/juil./2018 16:56, modifié 3 fois.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
FR4NK13
Messages : 72
Inscription : mar. 03/juil./2018 9:30

Re: Image de fond et centrage de gadget

Message par FR4NK13 »

Merci GallyHC pour les modifications et explications, je comprends mieux maintenant.

Je viens de les appliquer (effectivement, j'ai pas fait gaffe que c'était des divisions probablement... :lol:


J'avoue ne pas avoir tout compris dans le code.

Sinon tu pourrais m'expliquer comment fusionner le reste du code ?

Merci à toi et passe une bonne journée :)
boby
Messages : 261
Inscription : jeu. 07/juin/2007 22:54

Re: Image de fond et centrage de gadget

Message par boby »

Code : Tout sélectionner

EnableExplicit
Global Window,ImageGadget,Start,Exit,Image
Declare close()
Declare Resize()

Window = OpenWindow(#PB_Any,0,0,800,600,"blaaaaa",#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget)
If Window
  Image = LoadImage(#PB_Any,"Examples/Sources/data/Background.bmp")
  If Image
    ImageGadget = ImageGadget(#PB_Any,(WindowWidth(Window)-ImageWidth(Image))/2,(WindowHeight(Window)-ImageHeight(Image))/2,ImageWidth(Image),ImageHeight(Image),ImageID(Image))
    Start = ButtonGadget(#PB_Any,(WindowWidth(Window)-40)/2,(WindowHeight(Window)-20)/2-20,40,20,"Start")
    Exit = ButtonGadget(#PB_Any,(WindowWidth(Window)-40)/2,(WindowHeight(Window)-20)/2+20,40,20,"exit")
  EndIf
  SetWindowColor(Window,$666666)
  BindEvent(#PB_Event_CloseWindow,@close())
  BindEvent(#PB_Event_SizeWindow,@Resize())
  BindGadgetEvent(Exit,@close())
EndIf

Repeat : WaitWindowEvent() : ForEver

Procedure Resize()
  ResizeGadget(ImageGadget,(WindowWidth(Window)-ImageWidth(Image))/2,(WindowHeight(Window)-ImageHeight(Image))/2,ImageWidth(Image),ImageHeight(Image))
  ResizeGadget(Start,(WindowWidth(Window)-40)/2,(WindowHeight(Window)-20)/2-20,40,20)
  ResizeGadget(Exit,(WindowWidth(Window)-40)/2,(WindowHeight(Window)-20)/2+20,40,20)
EndProcedure

Procedure close()
  End
EndProcedure
???
FR4NK13
Messages : 72
Inscription : mar. 03/juil./2018 9:30

Re: Image de fond et centrage de gadget

Message par FR4NK13 »

Merci Boby, tu peux me montrer avec le code entier s'il te plaît ? Ce serait super gentil de ta part :oops:
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Image de fond et centrage de gadget

Message par GallyHC »

Bonjour,

Code : Tout sélectionner

EnableExplicit

Enumeration WINDOW 0 Step 1
  #Fenetre_Main
  #Fenetre_A_Propos
EndEnumeration
Enumeration MENU 0 Step 1
  #Menu
  #Quitter
  #Regles
  #A_Propos
EndEnumeration
Enumeration GADGET 0 Step 1
  #Texte
  #Pikachu
  #Evoli
  #Rocabot
  
  #Bouton_Ferme_A_Propos
  #Texte_A_Propos1
  #Texte_A_Propos2
  #Texte_A_Propos3
EndEnumeration
Enumeration SOUND 0 Step 1
  #Pikachu_Sound
  #Evoli_Sound
  #Rocabot_Sound
EndEnumeration

InitSound()           
UseOGGSoundDecoder()  

Global.l event 
Global Formwith = 800

Declare Checkpoint()
Declare Quitter()
Declare Regles()

;=============================================================================================== 

Procedure Selection()
  ;
  ;
  ;
;   LoadSound(#Pikachu_sound, "Pikachu.ogg")
;   LoadSound(#Evoli_sound, "Evoli.ogg")
;   LoadSound(#Rocabot_sound, "Rocabot.ogg")
  
  Select EventGadget()  
    Case #Pikachu
;       PlaySound(#Pikachu_sound)
;       IncludeFile  "Pika.pbi"
    Case #Evoli
;       PlaySound(#Evoli_sound)
    Case #Rocabot
;       PlaySound(#Rocabot_sound)
  EndSelect
  
EndProcedure

;===============================================================================================
  
Procedure Resize()
  ;
  ;
  ;
  Protected.l wf = WindowWidth  (0)
  Protected.l wh = WindowHeight (0)
  ;Protected.l bw = GadgetWidth  (0)
  Protected.l bh = GadgetHeight (0)
  
  ResizeGadget(#Texte,(wf - GadgetWidth(#Texte)) / 2, (wh /6.5) - (bh /2), #PB_Ignore,#PB_Ignore)

  ResizeGadget(#Pikachu, (wf / 6) - (wf / 6),         (wh /3.5) - (bh /2), wf / 3, #PB_Ignore)
  ResizeGadget(#Evoli,   (wf / 2) - (wf / 6),         (wh /3.5) - (bh /2), wf / 3, #PB_Ignore)
  ResizeGadget(#Rocabot, (wf - (wf / 6)) - (wf / 6),  (wh /3.5) - (bh /2), wf / 3, #PB_Ignore)

EndProcedure  

;===============================================================================================
      
Procedure A_Propos()
  ;
  ;
  ;
  Protected iColor.l

  If OpenWindow(#Fenetre_A_Propos,153,40,260,115, "A Propos", #PB_Window_TitleBar|#PB_Window_BorderLess,WindowID(0))
    ; -> Normalement mettre le gadget de la fenêtre, exemple => WindowID(#Fenetre)

    SetWindowColor(#Fenetre_A_propos, RGB(150,150,150)) ; ---> Change la couleur de la fenêtre

    TextGadget(#Texte_A_Propos1,10, 10, 240, 20,"Pokémon, V.1",#PB_Text_Center) ; -> #PB_Text_Center -> Centre le texte dans la fenêtre
    TextGadget(#Texte_A_Propos2,10, 30, 240, 20,"Jeu de stratégie",#PB_Text_Center)
    TextGadget(#Texte_A_Propos3,10, 50, 240, 20,"By Salomé DURTH - 2018",#PB_Text_Center)

    ButtonGadget(#Bouton_Ferme_A_Propos,110,80,40,20,"Ok")
    
    For iColor = #Texte_A_Propos1 To #Texte_A_Propos3
      SetGadgetColor(iColor,#PB_Gadget_BackColor, RGB(150,150,150))
      SetGadgetColor(iColor,#PB_Gadget_FrontColor,RGB(255, 255, 255))
    Next
  EndIf

EndProcedure

;===============================================================================================

Procedure Fenetre()
  ;
  ;
  ;
  MessageRequester("Bienvenue","Amuse toi bien avec tes Pokémon !")
  
  If OpenWindow(#Fenetre_Main,0,0,formWith,600,"Pokémon V.1",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget)
;     LoadImage(#Pikachu, "Pikachu.BMP") 
;     LoadImage(#Evoli, "Evoli.BMP") 
;     LoadImage(#Rocabot, "Rocabot.BMP") 
            
    ButtonImageGadget(#pikachu, 0, 0, 210, 280, 0) ; ImageID(#pikachu)) 
    ButtonImageGadget(#Evoli,   0, 0, 210, 280, 0) ; ImageID(#Evoli)) 
    ButtonImageGadget(#Rocabot, 0, 0, 210, 280, 0) ; ImageID(#Rocabot)) 
    
    TextGadget(#Texte,10,10,240,30,"Salut ! Choisi ton Pokemon",#PB_Text_Center)
    
    CreateMenu(#Menu, WindowID(#Fenetre_Main))
    MenuTitle("Fichier")      
    MenuItem(#quitter, "Quitter")   
    
    MenuTitle("Aide")      
    MenuItem(#Regles, "Règles ")
    MenuItem(#A_Propos, "A propos")
    
    Resize()
  EndIf 
  
  BindEvent     (#PB_Event_SizeWindow,@Resize(),0)
  BindEvent     (#PB_Event_Gadget,@Selection())
  BindMenuEvent (#Menu,#quitter, @quitter())
  BindMenuEvent (#Menu,#A_Propos, @A_Propos())
  BindMenuEvent (#Menu,#Regles, @Regles())

EndProcedure

;===============================================================================================

Procedure quitter()
  ;
  ;
  ;
  PostEvent(#PB_Event_CloseWindow, #Fenetre_Main, #Menu)
  
EndProcedure
     
;===============================================================================================
      
Procedure Regles()
  ;
  ;
  ;
  MessageRequester("Règles"," Jeu de stratégie. Choisis ton Pokémon et remporte les combats. ")
  
EndProcedure
      
;===============================================================================================

fenetre()
   
Repeat
  Event = WaitWindowEvent()
  
  Select Event  
    Case #PB_Event_Gadget
      Select EventGadget()            
        Case #Bouton_Ferme_A_Propos 
          CloseWindow(#Fenetre_A_propos)
      EndSelect
  EndSelect

Until Event = #PB_Event_CloseWindow  

End
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
boby
Messages : 261
Inscription : jeu. 07/juin/2007 22:54

Re: Image de fond et centrage de gadget

Message par boby »

Merci Boby, tu peux me montrer avec le code entier s'il te plaît ?
C'est complet, c'est juste une façon plus courte du code de microdevweb, je n'ai pas compris l'utilisation du canevas dans son code.
Je ne vais pas adapter tes codes à ce que tu veux en faire, ça ne t'aidera en rien... Essaie plus de comprendre les exemples qu'on te donne et de t'en servir pour en faire ce que tu cherche à faire, tu progressera plus vite en fouillant un minimum par toi même.

Enfin... Je crois... donc pour ma part je ne te donnerai rien d'autres que des exemples de ce que tu demande et non des codes complets.
FR4NK13
Messages : 72
Inscription : mar. 03/juil./2018 9:30

Re: Image de fond et centrage de gadget

Message par FR4NK13 »

Merci beaucoup GallyHC,

Ton code fonctionne à un détail près : Bien que j'ai réactivé les fonctions de chargement et d'affichage des imagebuttongadgets, les images ne s'affichent pas (mais les sons fonctionnent cela dit lorsque l'on clique)

Quant au fond d'écran du programme, c'est peut-être moi, mais je ne le vois pas dans le code ?? :lol:
boby
Messages : 261
Inscription : jeu. 07/juin/2007 22:54

Re: Image de fond et centrage de gadget

Message par boby »

Code : Tout sélectionner

;     LoadImage(#Pikachu, "Pikachu.BMP")
;     LoadImage(#Evoli, "Evoli.BMP")
;     LoadImage(#Rocabot, "Rocabot.BMP") 
Probablement par-ce que les loadimage sont commanté ?
...Copier coller un code ne t'aidera pas à progresser...
FR4NK13
Messages : 72
Inscription : mar. 03/juil./2018 9:30

Re: Image de fond et centrage de gadget

Message par FR4NK13 »

Boby,
Bien que j'ai réactivé les fonctions de chargement et d'affichage des imagebuttongadgets

J'entendais par là bien évidemment le fait que j'avais retiré les points virgules afin de basculer du mode commentaire au mode codes.
boby
Messages : 261
Inscription : jeu. 07/juin/2007 22:54

Re: Image de fond et centrage de gadget

Message par boby »

Code : Tout sélectionner

    ButtonImageGadget(#pikachu, 0, 0, 210, 280, 0) ; ImageID(#pikachu))
    ButtonImageGadget(#Evoli,   0, 0, 210, 280, 0) ; ImageID(#Evoli))
    ButtonImageGadget(#Rocabot, 0, 0, 210, 280, 0) ; ImageID(#Rocabot)) 
Et tu as pensée à remplacer ce code par

Code : Tout sélectionner

ButtonImageGadget(#pikachu, 0, 0, 210, 280, ImageID(#pikachu))) 
ButtonImageGadget(#Evoli,   0, 0, 210, 280, ImageID(#Evoli))) 
ButtonImageGadget(#Rocabot, 0, 0, 210, 280, ImageID(#Rocabot)) 
??
FR4NK13
Messages : 72
Inscription : mar. 03/juil./2018 9:30

Re: Image de fond et centrage de gadget

Message par FR4NK13 »

Oui j'y ai pensé, mais je ne l'ai pas fait car je pensais que c'était des commentaires pour le coup... :lol:

Et de toute façon je n'aurais pas su adapter en retirant le 0 de la parenthèse.


Voilà maintenant ça marche merci :)

Par contre concernant le fond du programme il n'y a aucun code ? Je vais tenter de le mettre, je reviens donner des nouvelles si j'y arrive ou pas.
Répondre