[R] Cacher une image PNG

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
RL77LUC
Niveau 5
Niveau 5
Messages : 173
Enregistré le : mar. 21 sept. 2010 16:54
Status : Hors ligne

[R] Cacher une image PNG

#1

Message 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 !
Modifié en dernier par RL77LUC le jeu. 01 déc. 2011 17:09, modifié 1 fois.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Cacher une image PNG

#2

Message 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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
RL77LUC
Niveau 5
Niveau 5
Messages : 173
Enregistré le : mar. 21 sept. 2010 16:54
Status : Hors ligne

Re: [..] Cacher une image PNG

#3

Message 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 ?
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Cacher une image PNG

#4

Message 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 !
Si vis pacem para bellum
Avatar du membre
RL77LUC
Niveau 5
Niveau 5
Messages : 173
Enregistré le : mar. 21 sept. 2010 16:54
Status : Hors ligne

Re: [..] Cacher une image PNG

#5

Message par RL77LUC »

Ah en effet, les variables sont déclarées en local. Mais avec cette technique, comment contrôler quelle image masquer ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Cacher une image PNG

#6

Message 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 ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Cacher une image PNG

#7

Message 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.
Si vis pacem para bellum
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Cacher une image PNG

#8

Message 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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Cacher une image PNG

#9

Message 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 )
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Cacher une image PNG

#10

Message 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).
Si vis pacem para bellum
Avatar du membre
RL77LUC
Niveau 5
Niveau 5
Messages : 173
Enregistré le : mar. 21 sept. 2010 16:54
Status : Hors ligne

Re: [..] Cacher une image PNG

#11

Message 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.
Modifié en dernier par RL77LUC le jeu. 01 déc. 2011 17:09, modifié 2 fois.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Cacher une image PNG

#12

Message 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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
RL77LUC
Niveau 5
Niveau 5
Messages : 173
Enregistré le : mar. 21 sept. 2010 16:54
Status : Hors ligne

Re: [..] Cacher une image PNG

#13

Message par RL77LUC »

Petit soucis lors du recopiage ;). Peu importe, résolu ;).
Répondre