[R] GUI : boutons dynamiques
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.
[R] GUI : boutons dynamiques
Hell-O !
Dans le cadre de mon job, j'ai dû mettre en place un référentiel logiciel (en partant de 0, magnifique organisation...) : lister les applicatifs, trouver les sources, trouver les procédures existantes et les mettre à jour ou les créer. Jusque la, rien à voir avec AutoIT mais je pose le cadre (fastidieux).
Puisque cette boite est une grande fan d'excel, j'ai été "forcé" de le réaliser avec le formalise imposé mais j'essaie de voir un poil plus loin... Un fichier excel avec des onglets "logiciels dans le master", "logiciels standard", "logiciels métier", "logiciels packagés SCCM" et "astuces", ne me semble pas, ni ultra adapté, ni ergonomique pour une utilisation quotidienne. (env. 300 apps listées)
Du coup je suis parti sur une petite interface simple, gérées par onglets entre les différentes catégories et des ListBox qui récupèrent le contenu excel pour l'afficher. Jusqu'ici tout va bien...
SAUF QUE...
J'ai à coté de mes listbox un bouton "ouvrir la procédure" et un bouton "ouvrir le dossier source" qui, comme leur nom l'indique, m'ouvrent la procédure et le dossier ou sont placées les sources logicielles (2 serveurs différents)
J'ai donc envie (et besoin) que, lorsque je sélectionne un soft dans ma liste, mes deux boutons se mettent à jour dynamiquement (Si possible. Le cas échéant, je peux passer par un bouton "valider le logiciel" après sélection dans la listbox sans pb).
Sauf que... je bloque...
J'ai déjà fait un petit tour sur Google mais je ne trouve pas de solution pleinement fonctionnelle à mon souci...
Si quelqu'un peut m'aider... C'est pas de refus !
Merci d'avance à tous.
Dans le cadre de mon job, j'ai dû mettre en place un référentiel logiciel (en partant de 0, magnifique organisation...) : lister les applicatifs, trouver les sources, trouver les procédures existantes et les mettre à jour ou les créer. Jusque la, rien à voir avec AutoIT mais je pose le cadre (fastidieux).
Puisque cette boite est une grande fan d'excel, j'ai été "forcé" de le réaliser avec le formalise imposé mais j'essaie de voir un poil plus loin... Un fichier excel avec des onglets "logiciels dans le master", "logiciels standard", "logiciels métier", "logiciels packagés SCCM" et "astuces", ne me semble pas, ni ultra adapté, ni ergonomique pour une utilisation quotidienne. (env. 300 apps listées)
Du coup je suis parti sur une petite interface simple, gérées par onglets entre les différentes catégories et des ListBox qui récupèrent le contenu excel pour l'afficher. Jusqu'ici tout va bien...
SAUF QUE...
J'ai à coté de mes listbox un bouton "ouvrir la procédure" et un bouton "ouvrir le dossier source" qui, comme leur nom l'indique, m'ouvrent la procédure et le dossier ou sont placées les sources logicielles (2 serveurs différents)
J'ai donc envie (et besoin) que, lorsque je sélectionne un soft dans ma liste, mes deux boutons se mettent à jour dynamiquement (Si possible. Le cas échéant, je peux passer par un bouton "valider le logiciel" après sélection dans la listbox sans pb).
Sauf que... je bloque...
J'ai déjà fait un petit tour sur Google mais je ne trouve pas de solution pleinement fonctionnelle à mon souci...
Si quelqu'un peut m'aider... C'est pas de refus !
Merci d'avance à tous.
Modifié en dernier par LeBarbu le lun. 26 nov. 2012 12:31, modifié 1 fois.
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] GUI : boutons dynamiques
Je comprends pas le pb...LeBarbu a écrit :J'ai donc envie (et besoin) que, lorsque je sélectionne un soft dans ma liste, mes deux boutons se mettent à jour dynamiquement
Le bouton peut très bien exploiter un GuiCtrlRead($list) qui retourne la valeur sélectionnée dans la liste, non ?
Peut-être aussi créer au départ une (ou plusieurs) array 2D où
$soft[x][0] = application
$soft[x][1] = procedure
$soft[x][3] = dossier
Code : Tout sélectionner
Case $bouton
For $i = 0 to UBound($soft)-1
If $soft[$i][0] = GuiCtrlRead($list) Then
$procedure = $soft[$i][1]
$dossier = $soft[$i][2]
EndIf
; ... etc
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 )
Re: [..] GUI : boutons dynamiques
Merci Mikell,
En fait, je n'aurais pas forcément besoin d'un array car les chemin du dossier et de la procédure sera selon un formalisme identique pour chaque logiciel (ex: \\srv\apps\NomApp\Installation.doc)
En passant par un bouton, je venais juste de réussir à récupérer le texte selectionné :
Mon but était de récupérer l'info "OnClick" sur ma liste. En suivant ton exemple,
Mais la, mon pb est que dans mon label j'ai la liste entière qui s'affiche, ligne après ligne... J'ai l'impression de louper un truc tout bête...
En fait, je n'aurais pas forcément besoin d'un array car les chemin du dossier et de la procédure sera selon un formalisme identique pour chaque logiciel (ex: \\srv\apps\NomApp\Installation.doc)
En passant par un bouton, je venais juste de réussir à récupérer le texte selectionné :
Code : Tout sélectionner
Case $Std_Valid
$Std_Selected = ControlCommand($GUI, "", $Std_List, "GetCurrentSelection")
MsgBox(64, "", $Std_Selected)
Code : Tout sélectionner
While 1
GUICtrlCreateLabel(GUICtrlRead($Std_List), 469, 344, 150, 17)
WEnd
-
- Niveau 7
- Messages : 450
- Enregistré le : mer. 18 mars 2009 22:12
- Localisation : Montpellier
- Status : Hors ligne
Re: [..] GUI : boutons dynamiques
Bobnjour
je comprends pas ton pb en plus avec ta dernière ligne tu vas créer un tas de label essaie ca:
je comprends pas ton pb en plus avec ta dernière ligne tu vas créer un tas de label essaie ca:
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
Local $nMsg
GUICreate("Test combo")
Local $nCb = GUICtrlCreateCombo("", 10, 10)
GUICtrlSetData(-1, "word|excel|photofiltre", "")
GUISetState()
While 1
$nMsg = GUIGetMsg()
If $nMsg = $GUI_EVENT_CLOSE Then ExitLoop
Switch $nMsg
case $nCb
MsgBox(0, "Item sélectionné" & GUICtrlRead($nCb), StringFormat("Serveur: \\srv\apps\%s\Installation.doc", GUICtrlRead($nCb)))
EndSwitch
WEnd
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] GUI : boutons dynamiques
C'est encore plus parlant en remplaçant dans le code de Gary GUICtrlCreateCombo par GUICtrlCreateList ^^
" 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: [..] GUI : boutons dynamiques
Salut à tous.
Effectivement GaRydelaMer, ce que je voyais "défiler" était la création de X labels superposés.
J'ai réadapté ton code à mes besoins
et...
et...
Donc, un grand merci ! (à tous) pour votre aide.
Et un passage en Résolu
Effectivement GaRydelaMer, ce que je voyais "défiler" était la création de X labels superposés.
J'ai réadapté ton code à mes besoins
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
Local $nMsg
GUICreate("Test combo")
Local $nCb = GUICtrlCreateList("", 10, 10)
GUICtrlSetData(-1, "word|excel|photofiltre", "")
GUISetState()
Local $Info1 = GUICtrlCreateLabel("Nom Applicatif", 250, 150)
While 1
$nMsg = GUIGetMsg()
If $nMsg = $GUI_EVENT_CLOSE Then ExitLoop
Switch $nMsg
case $nCb
GUICtrlDelete($Info1)
$Info1 = GUICtrlCreateLabel(GUICtrlRead($nCb), 250, 150)
EndSwitch
WEnd
et...
► Afficher le texte
Et un passage en Résolu
-
- Niveau 7
- Messages : 450
- Enregistré le : mer. 18 mars 2009 22:12
- Localisation : Montpellier
- Status : Hors ligne
Re: [R] GUI : boutons dynamiques
Bonjour
Non c'est pas bon dans ton code tu vas encore une fois créer des label à chaque sélection dans la liste. Bien que tu le supprime avant, il est plus simple de le mettre à jour.
Non c'est pas bon dans ton code tu vas encore une fois créer des label à chaque sélection dans la liste. Bien que tu le supprime avant, il est plus simple de le mettre à jour.
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
Local $nMsg
GUICreate("Test combo")
Local $nCb = GUICtrlCreateList("", 10, 10)
GUICtrlSetData(-1, "word|excel|photofiltre", "")
GUISetState()
Local $Info1 = GUICtrlCreateLabel("Nom Applicatif", 250, 150)
While 1
$nMsg = GUIGetMsg()
If $nMsg = $GUI_EVENT_CLOSE Then ExitLoop
Switch $nMsg
case $nCb
GUICtrlSetData($Info1, "Appli: " & GUICtrlRead($nCb)) ; Puisque tu l'as déjà créer met juste ça valeur à jour !!!
EndSwitch
WEnd