[R] GUI : boutons dynamiques

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Avatar du membre
LeBarbu
Niveau 1
Niveau 1
Messages : 5
Enregistré le : ven. 23 nov. 2012 11:42
Status : Hors ligne

[R] GUI : boutons dynamiques

#1

Message par LeBarbu »

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.
Modifié en dernier par LeBarbu le lun. 26 nov. 2012 12:31, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] GUI : boutons dynamiques

#2

Message par mikell »

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
Je comprends pas le pb...
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 )
Avatar du membre
LeBarbu
Niveau 1
Niveau 1
Messages : 5
Enregistré le : ven. 23 nov. 2012 11:42
Status : Hors ligne

Re: [..] GUI : boutons dynamiques

#3

Message par LeBarbu »

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é :

Code : Tout sélectionner

Case $Std_Valid
   $Std_Selected = ControlCommand($GUI, "", $Std_List, "GetCurrentSelection")
   MsgBox(64, "", $Std_Selected)
 
Mon but était de récupérer l'info "OnClick" sur ma liste. En suivant ton exemple,

Code : Tout sélectionner

While 1
   GUICtrlCreateLabel(GUICtrlRead($Std_List), 469, 344, 150, 17)
WEnd
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...
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] GUI : boutons dynamiques

#4

Message par GaRydelaMer »

Bobnjour

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

Re: [..] GUI : boutons dynamiques

#5

Message par mikell »

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 )
Avatar du membre
LeBarbu
Niveau 1
Niveau 1
Messages : 5
Enregistré le : ven. 23 nov. 2012 11:42
Status : Hors ligne

Re: [..] GUI : boutons dynamiques

#6

Message par LeBarbu »

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

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...

et...
► Afficher le texte
Donc, un grand merci ! (à tous) pour votre aide.

Et un passage en Résolu
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [R] GUI : boutons dynamiques

#7

Message par GaRydelaMer »

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.

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
Répondre