Page 1 sur 1

[R] Cacher une image PNG

Posté : mer. 30 nov. 2011 13:04
par RL77LUC
Bonjour à tous !

J'ai besoin de votre aide ^^'. Voici mon problème : J'ai utilisé la fonction PngGuiCreatePic, mais je ne trouve pas comment cacher les images générées ...
Voici la fonction :
► Afficher le texteFonction
Si quelqu'un pouvait m'éclairer sur la question, ça serait super. Merci !

Re: [..] Cacher une image PNG

Posté : mer. 30 nov. 2011 13:30
par TommyDDR
RL77LUC a écrit :$pic = GUICtrlCreatePic("", $x, $y, $ImageWidth, $ImageHeight)
Tous les GUICtrlCreatexxx peuvent être caché par : ...

Après avoir passé 38secondes dans l'aide AutoIt, j'ai trouvé la réponse, c'est pourquoi je vais vous laisser chercher.
Allez dans l'aide de GUICtrlCreatePic (Placez votre curseur sur GUICtrlCreatePic dans SciTe et faites F1)
Puis regardez dans "Related" -> "GUICtrlUpdate...".

Vous trouverez votre bonheur.

Re: [..] Cacher une image PNG

Posté : mer. 30 nov. 2011 13:42
par RL77LUC
J'y ai déjà pensé mais il me dit que $pic n'est pas déclaré -_-'. De plus, j'utilise plusieurs fois la fonction, comment choisir l'image à masquer ?

Re: [..] Cacher une image PNG

Posté : mer. 30 nov. 2011 16:55
par zeshrek
$pic pas déclaré... a voir du coté de la délaration des variable (F1 -> MustDeclareVars) en fait non. Même si il y a un rapport assez lointain
Relis la fonction que tu nous a donnée, et tu comprendras pourquoi tu ne peux pas utilsier $pic ailleurs que dans cette fonction !
indice, pense a la facon dont tu invoques (ou en tout cas celle dont tu devrais le faier, car on a pas le reste de ton source), ca devrait te mettre sur la piste.

Pour rendre l'image invisible, contrairement a Tommy, j'irai plutot voir du coté de GUICtrlSetState. Ceci dit, il doit etre aussi possible de jouer avec le WS_VISIBLE à l'aide de GUICtrlUpdate comme il l'indique.

Bref, dans tous les cas, tout est dans l'aide, il suffit de prendre qq minutes pour la lire !

Je sais, mes réponses sont incompletes... bin comme ton code !

Re: [..] Cacher une image PNG

Posté : mer. 30 nov. 2011 18:42
par RL77LUC
Ah en effet, les variables sont déclarées en local. Mais avec cette technique, comment contrôler quelle image masquer ?

Re: [..] Cacher une image PNG

Posté : mer. 30 nov. 2011 21:41
par mikell
RL77LUC a écrit : comment contrôler quelle image masquer ?
:?:
$pic1 = PngGuiCreatePic($src1, $x1, $y1)
$pic2 = PngGuiCreatePic($src2, $x2, $y2)
Tu masques $pic1, $pic2, au choix non ?

Re: [..] Cacher une image PNG

Posté : jeu. 01 déc. 2011 09:41
par zeshrek
Perso j'aurai plutot utilisé une autre variable que $pic1, $pic2... etc
Utiliser les mêmes noms pour des variables locales et globales, c'est un truc a avoir des emm*rdes.

RL77LUC a écrit :Ah en effet, les variables sont déclarées en local.
Déclarées ? non, je ne vois nulle part de déclaration de tes variables locales dans ton code !
Une bonne habitude a pendre consiste a mettre en première ligne de ton code, juste apres les incldes, un

Code : Tout sélectionner

AutoItSetOption ("MustDeclareVars", 1)
Du coup en début de code tu déclares tes variables globales, et dans chaque fonction tu mes tes variables locales. Ca a l'air de rien, mais ca t'aurait permis de trouver d'ou venait ton probleme en qq minutes.

Re: [..] Cacher une image PNG

Posté : jeu. 01 déc. 2011 14:05
par mikell
zeshrek a écrit :Perso j'aurai plutot utilisé une autre variable que $pic1, $pic2... etc
Utiliser les mêmes noms pour des variables locales et globales, c'est un truc a avoir des emm*rdes.
Si tu le dis, ok mais jusqu'à présent autoit a toujours été capable de faire la différence entre des variables $pic et $pic1 ou $pic2 (vaut mieux d'ailleurs, ake sinon ya pas mal de fonctions où ce serait le b...)
Ya qu'à voir le nombre de scripts avec $edit1, $edit2 etc

Re: [..] Cacher une image PNG

Posté : jeu. 01 déc. 2011 15:48
par TommyDDR
@Zeshrek : "GUICtrlUpdate..." n'est pas une fonction, c'est un set de fonctions dont fait parti GUICtrlSetState (je voulais qu'il cherche le nom ! :P )

Re: [..] Cacher une image PNG

Posté : jeu. 01 déc. 2011 16:11
par zeshrek
@mikell : c'est pas pour autoit que je me fais du soucis, mais plutot pour notre ami R77LUC. Vu qu'il semble avoir du mal avec une simple lecture de cette fonction à mprendre comment elle fonctionne et donc a savior identifier l'image qu'il crée, je pense qu'il vaudrait mieux qu'il prenne au plus tot l'habitude de déclarer ses variables (ce qui permet par ex au moment ou on les déclare de mettre un petit commentaire sur ce a quoi elles servent. Ca peut toujours servir, en particulier si on a la bonne idée de les appler $pic1, $pic2... plutot que $PicDuSplashScreen, $PicBandeauSupDeForm1...etc)

@tommy : Désolé, j'ai pas réfléchi, pour moi la visibilité passe par GUICtrlSetState, je prend même pas le temps d'y réfléchir. Donc en lisant ton GUICtrlUpdate j'ai confondu et pensé pensé que tu parlais de GUICtrlSetStyle (d'ou le WS_VISIBLE).

Re: [..] Cacher une image PNG

Posté : jeu. 01 déc. 2011 17:02
par RL77LUC
J'ai parfaitement compris, mais quand je déclare mon image comme ceci :
Global $limit = PngGuiCreatePic("limit.png", 350, 23)

Je ne peux la supprimer ou masquer comme ceci :
GuiCtrlDelete($limit)
GuiCtrlSetState($limit, @SW_HIDE)

Et je connais ces fonctions, mais je ne comprends pas comment cacher une image appelée avec cette fonction, même en déclarant $pic en global et en utilisant les fonctions ci-dessus ...

Et je comprends la fonction : Elle produit un bitmap du PNG à l'aide de GDIPlus, et insère l'image obtenue dans un contrôle de GUI de type Image, retourné par "Return $pic". Toujours est-il que je n'arrive pas à agir avec !

EDIT: J'ai quelque peu modifié la fonction à mes besoins et ça fonctionne. Je passe en résolu.

Re: [..] Cacher une image PNG

Posté : jeu. 01 déc. 2011 17:08
par TommyDDR

Code : Tout sélectionner

Global $limit = PngGuiCreatePic("limit.png", 350, 23)

GuiCtrlDelete($ImgRank)
GuiCtrlSetState($ImgRank, @SW_HIDE)
Global $limit = PngGuiCreatePic("limit.png", 350, 23) -> votre image est rangée dans $limit et non $ImgRank...

Renseignez vous sur ce qu'est un retour de fonction.

D'autre part @SW_HIDE n'existe pas pour GUICtrlSetState, il faut utiliser $GUI_HIDE et son include qui va avec.

Re: [..] Cacher une image PNG

Posté : jeu. 01 déc. 2011 17:09
par RL77LUC
Petit soucis lors du recopiage ;). Peu importe, résolu ;).