Gambas France BETA


Pas de compte ? Incription

actualisation d'une picturebox...

Ce sujet est résolu.

1
AuteurMessages
spheris#1 Posté le 11/4/2015 à 16:32:50
Bonjour,
Je crée une picturebox dans une form2 par la commande :

1
2
3
DIM maphoto AS picturebox
maphoto = NEW picturebox(ME)
maphoto.picture = picture["./img/toto.png"]


un bouton sur fmain ouvre une autre fenetre form2 contenant le code de mon image.

lorsque j'ouvre ma form2, la photo se charge bien et je l'affiche correctement.

Je ferme ma form2 et reviens sur fmain.

J'efface ma photo toto.png et en crée une autre sous gimp qui a le meme nom (le programme fmain tourne toujours)

si j'ouvre form2 a nouveau, j'ai toujours la vieille photo et non la nouvelle que je viens de créer.
On dirait que GB3 garde en mémoire la photo.
Pouvez-vous me dire pourquoi? et y'a-t-il une solution pour voir la nouvelle photo ?
Merci pour votre réponse.
;)

le code de fmain:

1
2
3
PUBLIC SUB Button1_Click()
form2.Show()
END


le code de form2:

1
2
3
4
5
6
7
8
9
PUBLIC SUB Form_Open()
DIM maphoto AS Picturebox
maphoto = NEW Picturebox(ME)
maphoto.Width = ME.Width
maphoto.Height = ME.Height
maphoto.Background = &H000000&
maphoto.Stretch = TRUE
maphoto.picture = picture["./toto.jpg"]
END


dans Form2_close, j'ai tenté maphoto.delete
ou à l'ouverture maphoto.refresh() mais cela ne fonctionne pas.
spheris#2 Posté le 11/4/2015 à 21:20:54
ce problème était sur GB 3.1.1
Bon.... visiblement même problème sur la 3.7
Reivillo#3 Posté le 11/4/2015 à 21:21:52
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Bonsoir spheris.

Dans le Code ci-dessous, la Ligne 1 ne serait-elle pas plutôt PUBLIC SUB Form2_Open
1
2
3
4
5
6
7
8
9
PUBLIC SUB Form_Open()
DIM maphoto AS Picturebox
maphoto = NEW Picturebox(ME)
maphoto.Width = ME.Width
maphoto.Height = ME.Height
maphoto.Background = &H000000&
maphoto.Stretch = TRUE
maphoto.picture = picture["./toto.jpg"]
END
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
spheris#4 Posté le 11/4/2015 à 22:33:55
Euh..... pas vraiment mon petit Reivillo.
Quelque soit le nom de la Form , c'est toujours la fonction Form_open qui est celle de l'ouverture.
;) ;)
Reivillo#5 Posté le 12/4/2015 à 19:26:28
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »
Euh..... pas vraiment mon petit Reivillo.
Quelque soit le nom de la Form , c'est toujours la fonction Form_open qui est celle de l'ouverture.
Hé Ben!..Il était bien fatigué le Reivillo... :oops:
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
didier18#6 Posté le 13/4/2015 à 01:03:35
Bonsoir spheris et Reivillo

Et si tu fait :
menu/Projet/Nettoyer
suivi éventuellement d'un :
menu/Projet/Rafraichir
ça donne quoi ?
Foromus#7 Posté le 13/4/2015 à 08:44:35
Bonjour tout le monde,


Il me semble avoir déjà eu un problème similaire dans une vie antérieure...

D'après mes notes, et pour remplacer une image affichée, je fais :

1
2
3
picImage.picture = Picture["/Chemin/Monimage.png"]
picImage.picture = NEW Picture
picImage.Refresh


Après, peut-être que ce n'est pas la bonne formule.
spheris#8 Posté le 13/4/2015 à 14:20:32
Foromus,
un grand merci pour ta réponse.
Malheureusement, cela ne fonctionne pas.
On dirait que la commande refresh ne fonctionne pas.
;)
didier18#9 Posté le 10/5/2015 à 18:14:18
Bonjour tout le monde

C'est peut être un problème de taille ?

Ainsi une icone 32x32 sera affichée correctement sur un bouton...
Par contre si mon icone fait 127x127 (ok c'est plus vraiment une icone) elle ne sera pas affichée dans le bouton, mais elle sera remplacée par la 1ère icone disponible...

ça non plus je sais pas l'expliquer... ;-)
jibi#10 Posté le 23/4/2020 à 16:09:00
codergambas.jimdofree.comBonjour,

Je remonte ce vieux post car j'ai exactement le même problème et je n'ai pas trouvé de solution !

ce souci a t'il été résolué et comment svp ? :)

1
2
3
4
5
'au lieu de
pictBox.Picture = Picture[chemin & "/image.jpg"]

'j'ai fait
pictBox.Picture = monImage.Load(chemin & "/image.jpg")
Debian GNU/Linux 11 64-bit

valaquarus#11 Posté le 23/4/2020 à 19:28:01
-- Unus Ex Altera --Bonsoir jibi,
je te l'ai écrit une picture est gérée directement dans une zone mémoire dédiée qu'il faut penser à vider sinon on récupère ce qui y traîne. La commande est maPictureBox.Flush()
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
jibi#12 Posté le 23/4/2020 à 20:37:18
codergambas.jimdofree.comDésolé j'ai oublié de préciser :
édit et solution trouvée dans mon précédent post

pictBox.Picture = monImage.Load(chemin & "/image.jpg")

Merci Vaquarus
Debian GNU/Linux 11 64-bit

spheris#13 Posté le 25/5/2020 à 19:40:09
La commande est maPictureBox.Flush()

Je ne comprends pas, je ne trouve pas cette méthode, propriété ou évènement dans la doc. D'où sors-tu cette info ?
valaquarus#14 Posté le 25/5/2020 à 20:06:52
-- Unus Ex Altera --Spheris, ce n'est pas picturebox.flush mais picture.flush, mes doigts ont écrit plus vite que moi.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
spheris#15 Posté le 27/5/2020 à 10:21:57
yavol ! merci
;)
1