[..] Affichage d'image sur une form

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Axxcat
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 02 oct. 2008 16:44
Status : Hors ligne

[..] Affichage d'image sur une form

#1

Message par Axxcat »

Bonjour

J'ai créer une form avec Koda, elle contiens 2 images crées avec la commande

Code : Tout sélectionner

Global $Pict = GUICtrlCreatePic("", 8, 72, 260, 230, $SS_CENTERIMAGE)
Global $PictMod = GUICtrlCreatePic("", 264, 72, 260, 230, $SS_CENTERIMAGE)
Lorsque j'assigne une image à mon contrôle, les 2 images se superposent, et je voit l'une a travers l'autre.

Code : Tout sélectionner

GUICtrlSetImage ($Pict,$WorkRefDir & $ScreenRef)
GUICtrlSetImage ($PictMod,$WorkRefDir & $ScreenRefm)
Les images sont en bmp.
Refaire un GUICtrlCreatePic par dessus $PictMod n'a pas l'aire de fonctionner?
Avez vous déjà rencontré ce problème?

Merci
Modifié en dernier par jbnh le mer. 08 oct. 2008 15:28, modifié 1 fois.
Raison : Balise du titre !!!!!
Axxcat
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 02 oct. 2008 16:44
Status : Hors ligne

Re: Affichage d'image sur une form

#2

Message par Axxcat »

J'ai remarqué que l'ancienne image disparait si on passe une autre fenêtre sur ma form.

J'ai dont fait un

Code : Tout sélectionner

    GUISetState(@SW_HIDE)
    GUISetState(@SW_SHOW)
Et cela fonctionne mais cela fat clignoter ma fenêtre!

Il doit y avoir une fonction de mise a jours des graphiques que j'ai du loupé.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Affichage d'image sur une form

#3

Message par timmalos »

Peut etre qu'un simple GUICtrlSetState($Pict,@SW_HIDE) avant de mettre la 2eme image suffit?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Affichage d'image sur une form

#4

Message par Tlem »

La fonction GUICtrlCreatePic comme son nom l'indique, attribue une image à un contrôle.

Si vous souhaitez attribuer une autre image à ce contrôle au cours de votre script, utilisez la fonction au moment ou il faut le faire et non lors de la création de l'interface graphique.

Utilisez un premier GUICtrlCreatePic lors de la création de la GUI (pour attribuer l'image de départ) puis en fonction de l'action qui doit entraîner le changement de cette image, utilisez GUICtrlSetImage pour la nouvelle image.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Axxcat
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 02 oct. 2008 16:44
Status : Hors ligne

Re: [..] Affichage d'image sur une form

#5

Message par Axxcat »

Merci a tous les deux

La solution de timmalos ne fonctionne pas. (Je l'ai fait juste pour vérifier)

Code : Tout sélectionner

    GUICtrlSetState($Pict,@SW_HIDE)
    GUICtrlSetState($PictMod,@SW_HIDE)

    GUICtrlSetImage ($Pict,$WorkRefDir & $ScreenRef)
    GUICtrlSetImage ($PictMod,$WorkRefDir & $ScreenRefm)
Et pour celle de Tlem qui il est vrait serait une solution propre, elle plante et n'affiche rien du tout. Je pense que c'est parce que les deux CtrlPic se retrouvent l'un sur l'autre. Il faut donc supprimer au préalable Le CtrlPict mais j'ai trouver des CtrlDestroy pour tous les control sauf le pic!

Cette solution apporte un autre problème si je change mon interface graphique qui est décrite en amont de mon programme (exemple je déplace l'image) il faut alors que je change le code partout ou je met a jours cette image! Ce qui n'est pas pratique.

En tous cas merci de votre aide
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Affichage d'image sur une form

#6

Message par Tlem »

Je crois que vous n'avez pas très bien compris mes explications.
Voici un exemple concret de ce que j'ai dit :

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 239, 229, 193, 125)
$Pic1 = GUICtrlCreatePic("", 8, 8, 220, 172, $SS_CENTERIMAGE)
$Button1 = GUICtrlCreateButton("Image 1", 8, 192, 70, 25, 0)
$Button2 =  GUICtrlCreateButton("Image 2", 80, 192, 70, 25, 0)
$Button3 = GUICtrlCreateButton("Image 3", 152, 192, 70, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        
        Case $Button1
            GUICtrlSetImage ($Pic1,"C:\WINDOWS\winnt.bmp")
        
        Case $Button2
            GUICtrlSetImage ($Pic1,"C:\WINDOWS\Plume.bmp")

        Case $Button3
            GUICtrlSetImage ($Pic1,"C:\WINDOWS\Zapotec.bmp")

    EndSwitch
WEnd
 
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre