Beau boulot
Ton bloc de code pour l'image dans le code principal est inutile puisque tu charges déjà ton image dans le formulaire
XIncludeFile "formulaire_lecteur_radio.pbf"
Regarde le .pbf il fait déjà le boulot
Code : Tout sélectionner
UsePNGImageDecoder()
...
Img_Window_0_0 = LoadImage(#PB_Any,"C:\Users\pc\...
...
ButtonImage_radio = ButtonImageGadget(#PB_Any, 10, 10, 110, 110, ImageID(#Img_Window_0_0))
De même inutile de remettre UsePNGImageDecoder() dans le code principal puisque ce dernier et déjà chargé par le .pbf

Puisque tu as eut le bon reflex d'utiliser le gestionnaire de formulaire,
tu peux d'ailleurs lui demander d'incorporer directement l'image dans l'EXE
ainsi tu n'auras pas à la fournir avec le programme.
1. Cliques sur le ButtonImage
2. Vas dans le menu
Form
3. Sélectionne
Manager d'Images...
4. Coches
CatchImage (il créé le code)
5. Appuie sur
Rendre rép.relatif (tu peux ensuite compiler des sources depuis n'importe où)
Si tu regardes le code source du .pbf, il a créé deux bocs:
Code : Tout sélectionner
; au début
Img_Window_0_0 = CatchImage(#PB_Any,?Img_Window_0_0)
; en bas
DataSection
Img_Window_0_0: : IncludeBinary "..\Users\pc\Documents\radio\nos_logiciels\purebasic\radio_lecteur_purebasic\radio.png"
EndDataSection
(C'est le genre de lignes pénibles à faire à la main, donc c'est un des excellents points du FD)
Si ensuite tu changes le chemin d'une image (lors de la compilation) ou si tu veux en ajouter, il suffit de repasser par le manager d'images.
Enfin, si tu veux changer l'image d'un bouton après création la syntaxe est
SetGadgetAttribute(#Gadget, Attribut, Valeur)
Code : Tout sélectionner
SetGadgetAttribute(ButtonImage_radio, #PB_Button_Image, ImageID(#Img_Window_0_0))
(l'attribut est le deuxième paramètre et ne pas oublier ImageID( ))
