merci d'avance
Griser le Contenu d'une GUI
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- Nicoloquinte
- Niveau 4

- Messages : 70
- Enregistré le : ven. 15 juil. 2016 11:57
- Status : Hors ligne
Griser le Contenu d'une GUI
Bonjour , j'aimerai griser un partie des boutons et autres trucs de ma Gui avec le fameux
Mai la , Je me heurte a un problème , j'ai essayé la boucle For avec les noms de mes Champs a l’intérieur , mais ça ne marche pas (et je crois comprendre pourquoi) J'ai aussi essayé l’histoire de les cacher mais c'est pas super beau ...
y-aurait-il un moyen de mettre les contrôles dans un groupe et griser ce groupe
merci d'avance
merci d'avance
Nico ¤_¤
Re: Griser le Contenu d'une GUI
Il faut mettre les ID des contrôles dans un tableau et faire une boucle comme tu l'as fait.
Montre-nous ce que tu as fait
Montre-nous ce que tu as fait
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: Griser le Contenu d'une GUI
Si les controles ont été créés bien à la suite tu peux aussi essayer ça
Mais le tableau reste quand même une solution plus propre (même si en pratique ça fait la même chose)
Code : Tout sélectionner
For $i = $bouton1 to $bouton10
GUICtrlSetState($i, $GUI_DISABLE)
Next" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- Nicoloquinte
- Niveau 4

- Messages : 70
- Enregistré le : ven. 15 juil. 2016 11:57
- Status : Hors ligne
Re: Griser le Contenu d'une GUI
Mes noms sont vraiment spécifique , moi j'ai fait ça ,
Mais , ça ne grise pas grand chose 
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Local $Arr[5] = ["$Button1","$Button2","$Button3","$Button4","$Button5"]
$Form2 = GUICreate("Form1", 163, 293, 1021, 392)
$Button1 = GUICtrlCreateButton("Button1", 32, 24, 75, 25)
$Button2 = GUICtrlCreateButton("Button2", 32, 72, 75, 25)
$Button3 = GUICtrlCreateButton("Button3", 32, 120, 75, 25)
$Button4 = GUICtrlCreateButton("Button4", 32, 168, 75, 25)
$Button5 = GUICtrlCreateButton("Button5", 32, 216, 75, 25)
GUISetState(@SW_SHOW)
For $i = 0 To 4
GUICtrlSetState($Arr[$i], $GUI_DISABLE)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Local $Arr[5] = ["$Button1","$Button2","$Button3","$Button4","$Button5"]
$Form2 = GUICreate("Form1", 163, 293, 1021, 392)
$Button1 = GUICtrlCreateButton("Button1", 32, 24, 75, 25)
$Button2 = GUICtrlCreateButton("Button2", 32, 72, 75, 25)
$Button3 = GUICtrlCreateButton("Button3", 32, 120, 75, 25)
$Button4 = GUICtrlCreateButton("Button4", 32, 168, 75, 25)
$Button5 = GUICtrlCreateButton("Button5", 32, 216, 75, 25)
GUISetState(@SW_SHOW)
For $i = 0 To 4
GUICtrlSetState($Arr[$i], $GUI_DISABLE)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Nico ¤_¤
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: Griser le Contenu d'une GUI
Alors ...
1) $Button1 = id de controle , mais "$Button1" = string (à cause des guillemets)
donc l'array devrait plutôt ressembler à ça
Local $Arr[5] = [$Button1,$Button2,$Button3,$Button4,$Button5]
2) c'est beaucoup mieux si l'array est déclarée après la création des boutons

1) $Button1 = id de controle , mais "$Button1" = string (à cause des guillemets)
donc l'array devrait plutôt ressembler à ça
Local $Arr[5] = [$Button1,$Button2,$Button3,$Button4,$Button5]
2) c'est beaucoup mieux si l'array est déclarée après la création des boutons
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: Griser le Contenu d'une GUI
Et si tu essayais plutot comme ca :
(Plus simple selon moi).
(Plus simple selon moi).
Local $Arr[6][5] = [[Ubound($Arr)-1] _
, ["Button1", 32, 24, 75, 25] _
, ["Button2", 32, 72, 75, 25] _
, ["Button3", 32, 120, 75, 25] _
, ["Button4", 32, 168, 75, 25] _
, ["Button5", 32, 216, 75, 25] _
]
$Form2 = GUICreate("Form1", 163, 293, 1021, 392)
For $i =1 To $Arr[0][0]
Assign($Arr[$i][0], GUICtrlCreateButton($Arr[$i][0], $Arr[$i][1], $Arr[$i][2], $Arr[$i][3], $Arr[$i][4]))
Next
GUISetState(@SW_SHOW)
For $i =1 To $Arr[0][0]
GUICtrlSetState(Eval($Arr[$i][0]), $GUI_DISABLE)
Sleep(1000)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
, ["Button1", 32, 24, 75, 25] _
, ["Button2", 32, 72, 75, 25] _
, ["Button3", 32, 120, 75, 25] _
, ["Button4", 32, 168, 75, 25] _
, ["Button5", 32, 216, 75, 25] _
]
$Form2 = GUICreate("Form1", 163, 293, 1021, 392)
For $i =1 To $Arr[0][0]
Assign($Arr[$i][0], GUICtrlCreateButton($Arr[$i][0], $Arr[$i][1], $Arr[$i][2], $Arr[$i][3], $Arr[$i][4]))
Next
GUISetState(@SW_SHOW)
For $i =1 To $Arr[0][0]
GUICtrlSetState(Eval($Arr[$i][0]), $GUI_DISABLE)
Sleep(1000)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: Griser le Contenu d'une GUI
Question de point de vuePlus simple selon moi
ça marche... mais personnellement je déconseille l'usage systématique de Assign/Eval
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: Griser le Contenu d'une GUI
Je dirais même plus mon cher Mikell: mieux vaut éviter l'utilisation de Assign 
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- Nicoloquinte
- Niveau 4

- Messages : 70
- Enregistré le : ven. 15 juil. 2016 11:57
- Status : Hors ligne
Re: Griser le Contenu d'une GUI
Ah oui J'avais oublié qu'on pouvais déclarer les variables quand on voulais Mercis Mikell , toujours aussi Pro
Mais pour la solution d'A2Energie , Elle me paraît très usine a gaz
....
Merci beaucoup a vous tous
Mais pour la solution d'A2Energie , Elle me paraît très usine a gaz
Merci beaucoup a vous tous
Nico ¤_¤
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: Griser le Contenu d'une GUI
Bien entendujguinch a écrit :Je dirais même plus mon cher Mikell: mieux vaut éviter l'utilisation de Assign
Mais considérant que
1) si Autoit le propose c'est que c'est faisable,
2) effectivement ça peut marcher,
3) l'utilisateur est raisonnablement adulte et s'il a envie de se faire un script casse-g... c'est son problème,
4) maintenant je suis vert et plus orange donc dorénavant et jusqu'à désormais inclus je modère mes propos
Je me contente d'émettre une suggestion basée sur un avis personnel avec les réserves d'usage

" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )


