Gambas France BETA


Pas de compte ? Incription

[RESOLU] Probleme de rafraichissement d'un picturebox

Ce sujet est résolu.

1
AuteurMessages
ivanr#1 Posté le 15/9/2010 à 12:44:00
Bonjour à tous,

j'ai un problème de rafraichissement d'image lors de l'utilisation des picturebox:

Version Gambas: 2.0.0

Composants utilisés:
gb, gb.net, gb.qt, gb.qt.ext, gb.qt.kde, gb.qt.kde.html

Au lancement du programme, la fonction "CreationEcranVirtuel" est lancée, elle affiche le contrôle picturebox créé en utilisant le fichier image et remplie la collection "CollectionEcranVirtuel".

Quand le fichier image change (ce que je contrôle en vérifiant que le fichier a bien changé dans le répertoire "REPERTOIRE_ECRANS_VIRTUELS"), la fonction "TraitementEcranVirtuel" est appelée pour mettre à jour les picturebox de la collection "CollectionEcranVirtuel" mais rien n'est mis à jour dans les picturebox.

Voici les 2 fonctions que j'utilise dans mon code:

La première fonction permet de créer un picturebox et l'ajouter dans une collection, cette fonction fonctionne sans problème:

PRIVATE SUB CreationEcranVirtuel(Parent AS Container, Nom AS String, Image AS String, Hauteur AS Integer, largeur AS Integer, x AS Integer, y AS Integer, Cadre AS Integer, Transparent AS Boolean)

DIM p AS PictureBox
DIM pic AS Picture

p = NEW PictureBox(Parent)

p.Name = nom
p.Tag = nom
p.Border = cadre
p.Stretch = TRUE
p.Height = hauteur
p.Left = x
p.Top = y
p.Width = largeur

IF image <> "" THEN
p.ToolTip = image
pic = picture[REPERTOIRE_ECRANS_VIRTUELS & image]
p.Picture = pic
ENDIF

CollectionEcranVirtuel.add(p, nom)

CATCH
PRINT "Erreur CreationEcranVirtuel " & error.code & " " & error.Text
END


Une deuxième fonction permet (quand elle fonctionnera) de rafraichir les PictureBox contenus dans la collection CollectionEcranVirtuel, cette fonction est lancée quand le fichier d'image est changé:

PUBLIC FUNCTION TraitementEcranVirtuel()

DIM p AS picturebox
DIM pic AS Picture


IF CollectionEcranVirtuel.count > 0 THEN
FOR EACH p IN collectionecranvirtuel

pic = picture[classservpi.REPERTOIRE_ECRANS_VIRTUELS & p.ToolTip]
p.picture = pic

NEXT
ENDIF

CATCH
PRINT "Erreur TraitementEcranVirtuel " & error.code & " " & error.Text

END

Par avance, Merci de votre aide.

Cordialement,

ivan

gambix#2 Posté le 15/9/2010 à 14:09:00
Faire simple !p.refresh ?
Moins de texte dans une signature c'est agrandir son espace.
ivanr#3 Posté le 15/9/2010 à 14:55:00
p.refresh ?


Presque !

pic.flush
p.picture=pic
p.refresh

Merci de m'avoir aussi rapidement mis sur la bonne voie.

Cordialement,

ivan
manu#4 Posté le 15/9/2010 à 17:05:00
Avec Gambas ca roule !Ivan,

tu devrais quand même chercher une version de gambas plus recente. Tu risques d'avoir des problemes reglés par les versions suivantes. :)
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
ivanr#5 Posté le 16/9/2010 à 12:35:00
Ivan,

tu devrais quand même chercher une version de gambas plus récente. Tu risques d'avoir des problèmes réglés par les versions suivantes. :)


Oui, je sais que je devrais faire le pas mais ca va me demander du boulot, mon dev est fait sur un Linutop et j'en ai bavé pour faire tenir ce dont j'avais besoin sur sa petite flash...

Cordialement,

ivan
spheris#6 Posté le 17/9/2010 à 20:55:00
Aujourd'hui,
gambas 2 tourne sur puppy linux, avec l'utilisation des deb ubuntu.
Ca devrait marcher beaucoup plus vite sur ton laptop, non ?
;)
ivanr#7 Posté le 21/9/2010 à 18:56:00
Aujourd'hui,
gambas 2 tourne sur puppy linux, avec l'utilisation des deb ubuntu.
Ca devrait marcher beaucoup plus vite sur ton laptop, non ?
;)


Pas su un laptop mais un Linutop, un petit boitier avec un linux embarqué qui a l'avantage de ne pas consommer : 8W

Cordialement,

Ivan
1