Page 1 sur 1

ButtonImage : choisir l'image

Publié : sam. 01/mai/2021 7:02
par hub73
Bonjour à tous.
Je ne parviens pas à bien initialiser mon ButtonImage lorsque je distribue mon logiciel final. L'image ne s'affiche pas dans le bouton.
J'utilise le code suivant. Le fichier radio.png est au même niveau que le programme .exe

Merci à vous.

Code : Tout sélectionner

  Define Image_radio.s
  
  Chemin_image_radio$ = GetPathPart(ProgramFilename()) + "radio.png"
  Debug Chemin_image_radio$
  Image_bouton = LoadImage(#PB_Any , Chemin_image_radio$)
  SetGadgetAttribute (ButtonImage_radio, Image_bouton, #PB_Button_Image)
- Vous pouvez tester et installer le programme final windows10 , depuis le site de la webradio : http://www.lesfloralies.info
- Après installation, vous avez l'intégralité du code purebasic dans le dossier 'Les Floralies Radio Lecteur"

Re: ButtonImage : choisir l'image

Publié : sam. 01/mai/2021 7:19
par venom
Bonjour,

J'ai pas tester le code. Tu as vérifier via
Debug Chemin_image_radio$
si le chemin correspond exactement au chemin de ton fichier image ? Et as tu appeler la fonction UsePNGImageDecoder() en début de code ?

Car l'exemple de base est facilement compréhensible





@++

Re: ButtonImage : choisir l'image

Publié : sam. 01/mai/2021 7:50
par Micoute
Surtout, ne pas oublier de déclarer le bouton image pour pouvoir l'utiliser.

Re: ButtonImage : choisir l'image

Publié : sam. 01/mai/2021 7:59
par Marc56
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


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

8)

Re: ButtonImage : choisir l'image

Publié : sam. 01/mai/2021 23:58
par hub73
Merci pour vos conseils. Tout fonctionne parfaitement désormais.
Si vous avez d'autres suggestions de finitions je suis preneur. Je souhaite conserver qqchose de très simple.