Page 1 sur 1
[R] Interfacer le Menu
Posté : mer. 04 févr. 2009 14:35
par TurT
Bonjour,
Je travail sur un projet qui consiste a créer un programme permettant d'installer des logiciels sur une machine local et en remote.
Je travail actuellement sur l'interface et j'aurais besoin d'aide pour mon menu.
Le Menu se présente ainsi:
Code : Tout sélectionner
Titre du menu -> Fichier Modules
Submenus -> Quitter Local
" " -> Remote
Admin
Je souhaite pouvoir changer les controls, labels, buttons et autres sur la fenetre (en dessou du menu) en fonction du choix du module: local, Remote ... dans le Menu.
Est ce que cela est possible?
j'ai regardé dans la doc et l'aide pour mettre les controls en @sw_hide mais rien trouvé. A part pour les buttons :
Merci.
Re: Interfacer le Menu
Posté : mer. 04 févr. 2009 15:10
par BeCool
Merci d'éditer le titre de votre post en accord avec les
règles de présentation d'un message.
Pour votre problème, pourquoi ne pas créer tout simplement une seconde fenêtre avec le menu comme vous le souhaitez ?
Re: [..]Interfacer le Menu
Posté : mer. 04 févr. 2009 15:48
par TurT
M'encombrer avec d'autres fenêtres me gène j'aimerais rendre les controls de la fenêtre active dynamiques.
Pour ne pas pouvoir ouvrir 2 fenêtres a la fois mon but est de limité l'utilisateur dans le module qu'il sélectionne: Local, Remote, Admin.
Re: [..]Interfacer le Menu
Posté : mer. 04 févr. 2009 15:52
par BeCool
Essayez alors de regarder du coté de
GUICtrlSetData
Re: [..]Interfacer le Menu
Posté : mer. 04 févr. 2009 16:03
par TurT
GUICtrlSetData Modifie les datas, le texte, la valeur des control, mais pas l'affichage d'après ce que j'ai lu dans la doc..
Re: [..]Interfacer le Menu
Posté : mer. 04 févr. 2009 16:21
par BeCool
Code : Tout sélectionner
GUICtrlSetData($Fonction_label_info, IniRead ( $filee, "", "Fonction", ""))
Ici il modifie le label Fonction (qui est vide) par la valeur Fonction qu'il lit dans un fichier.ini
Alors je pense qu'il peut être en mesure de modifier ce que vous désirez.
(GUICtrlSetData Modifie les données d'un contrôle.)
Au pire, vous devriez trouver votre bonheur
ICI
Re: [..]Interfacer le Menu
Posté : jeu. 05 févr. 2009 23:58
par Iste
TurT a écrit :GUICtrlSetData Modifie les datas, le texte, la valeur des control, mais pas l'affichage d'après ce que j'ai lu dans la doc..
Non effectivement, avec les fonctions de base on peut uniquement modifier les "data" qui sont assez limitées.
Mais,rien ne t'empeche de GuiCtrlDelete() le bouton (par exemple), et d'en recreer un autre aussitôt !
C'est peut etre pas la meilleur solution, il faut egalement recreer les infobules et sousmenus qui vont avec, mais ca marche
Re: [..] Interfacer le Menu
Posté : ven. 06 févr. 2009 18:54
par TurT
C'est une bonne idée je vais travailler la dessus

Merci!
Re: [..] Interfacer le Menu
Posté : mer. 11 févr. 2009 09:51
par TurT
Bon après de nombreux essais je ne suis pas parvenu a ce que je recherche..
J'ai créer des fonctions pour des groupes de controls, une fonction qui les créer une autre qui les supprimes. Quand j'en appel une sa marche la fonction affiche les controls, mais quand j'appelle sa fonction inverse celle qui les supprimes j'ai une erreur: "Variable used without being declared." en indiquant un control, ce qui est logique d'un coté mais je n'est pas trouvé de solution..
Je débute dans autoit donc il doit me manquer quelque chose ^^
Re: [R] Interfacer le Menu
Posté : mer. 11 févr. 2009 11:37
par TurT
Bon j'ai réussi!!
La solution:
je déclare tous les controls pour éviter les problèmes de déclaration de variables dans les fonctions.
Puis j'ai créé les fonctions qui change seulement l'état: Hide/show des controls
exemple:
► Afficher le texte
Code : Tout sélectionner
;declaration des controls
$Grp_Avancement = GUICtrlCreateGroup("Avancement", 328, 24, 297, 265)
$Edit_Local = GUICtrlCreateEdit("", 336, 40, 281, 241)
GUICtrlSetData(-1, "En attente...")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Bt_Installer = GUICtrlCreateButton("Installer", 360, 304, 99, 25, 0)
$bt_Redemarrer = GUICtrlCreateButton("Redémarrer", 504, 304, 91, 25, 0)
;declaration des fonctions
func Graph_Local_ON() ;fonction affiche les controls
GUICtrlSetState($Grp_Avancement,$GUI_SHOW)
GUICtrlSetState($Edit_Local,$GUI_SHOW)
GUICtrlSetState($Bt_Installer,$GUI_SHOW)
GUICtrlSetState($bt_Redemarrer,$GUI_SHOW)
EndFunc
func Graph_Local_OFF() ;fonction cache les controls
GUICtrlSetState($Grp_Avancement,$GUI_HIDE)
GUICtrlSetState($Edit_Local,$GUI_HIDE)
GUICtrlSetState($Bt_Installer,$GUI_HIDE)
GUICtrlSetState($bt_Redemarrer,$GUI_HIDE)
EndFunc
Pour ceux qui veulent voir le résultat avec toute l'interface qui le demande je posterais le code entier.
Merci pour votre aide!