[R] concaténer des controls

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
ericire
Niveau 2
Niveau 2
Messages : 25
Enregistré le : lun. 12 nov. 2012 15:12
Status : Hors ligne

[R] concaténer des controls

#1

Message par ericire »

bonsoir
toujours autant débutant
Je crée une GUI pour définir un chemin, et une fois ce chemin élaboré, créer une arborescence de dossiers.
Déjà pour la première étape qui est de créer le chemin, je ne sais pas faire apparaitre tous les controls dans une input finale
et pour les boutons radios je ne sais pas non plus comment les intégrer dans le dernier input
voici le code
► Afficher le texte
Modifié en dernier par ericire le lun. 18 avr. 2016 16:15, 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: concaténer des controls

#2

Message par mikell »

Il ya un ordre à respecter :
1) tu crées les controles
2) tu leur attribues un contenu (en cochant un bouton radio ou en écrivant dans un input)
3) tu lis le contenu de ces controles dans des variables
4) tu concatènes ces variables pour construire le chemin
5) tu crées le dossier correspondant à ce chemin
Si tu zappes une étape ça ne marchera pas
Voilà un exemple

Code : Tout sélectionner

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$gui = GUICreate("Créer les dossiers de l'opération", 400, 400)
; Create a input text dossier racine.
$dossier_racine = GUICtrlCreateLabel("Dossier racine", 8, 8, 136, 17)
$dossier_racineinput = GUICtrlCreateInput("DICT", 8, 25, 380, 21)
; Create a radio control departement.
;$departement = GUICtrlCreateLabel("Département", 8, 50, 136, 17)
$departement = GUICtrlCreateGroup("Département", 5, 50, 165, 50)
GUIStartGroup()
Local $idRadio1 = GUICtrlCreateRadio("30 - Gard", 8, 70, 70, 20)
Local $idRadio2 = GUICtrlCreateRadio("34 - Hérault", 80, 70, 70, 20)
; Create a radio control type opération.
GUICtrlCreateLabel("Type opération", 8, 100, 136, 17)
GUIStartGroup()
Local $idRadio3 = GUICtrlCreateRadio("Diagnostic", 8, 120, 70, 20)
Local $idRadio4 = GUICtrlCreateRadio("Fouille", 80, 120, 70, 20)
; GUICtrlSetState($idRadio3, $GUI_CHECKED)
; Create a input text communes.
GUICtrlCreateLabel("Commune", 8, 150, 136, 17)
$dossier_communes = GUICtrlCreateInput("", 8, 170, 380, 21)
; Create a input text nom chantier.
GUICtrlCreateLabel("Nom chantier", 8, 200, 136, 17)
$nom_chantierinput = GUICtrlCreateInput("", 8, 220, 380, 21)
; Create a input text chemin du dossier à créer.
GUICtrlCreateLabel("Chemin du dossier à créer", 8, 251, 136, 17)
$chemininput = GUICtrlCreateInput("" ,8, 271, 380, 21)

$ok = GUICtrlCreateButton("dossier à créer",8,300,150,30)
$doss = GUICtrlCreateButton("créer le dossier",170,300,150,30)
GUISetState()

Global $departement, $operation, $chemin

While 1
  $nMsg = GUIGetMsg()
  Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $idRadio1, $idRadio2   
         If GUICtrlRead($nMsg) = 1 Then $departement = StringLeft(GUICtrlRead($nMsg, 1), 2)
      Case $idRadio3, $idRadio4   
         If GUICtrlRead($nMsg) = 1 Then $operation = GUICtrlRead($nMsg, 1)
      Case $ok
         $racine = GUICtrlRead($dossier_racineinput)
         $commune = GUICtrlRead($dossier_communes)
         $chantier = GUICtrlRead($nom_chantierinput)
         If $racine <> "" and $departement <> "" and $operation <> "" and $commune <> ""  Then
             $chemin = $racine & "\" & $departement & "\" & $operation & "\" & $commune & "\" & $chantier
             GuiCtrlSetData($chemininput, $chemin)
         EndIf
      Case $doss
        If $chemin <> "" Then DirCreate($chemin)
   EndSwitch
WEnd
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
ericire
Niveau 2
Niveau 2
Messages : 25
Enregistré le : lun. 12 nov. 2012 15:12
Status : Hors ligne

Re: concaténer des controls

#3

Message par ericire »

Hello Mikell
merci beaucoup pour ton aide.
Les actions sont interceptées dans la boucle.
J'ai compris la nuance entre GUICtrlRead($nMsg) et GUICtrlRead($nMsg, 1) sur les boutons radio et donc aussi le rôle de $nMsg = GUIGetMsg()
qui contient l'event des actions.
J'essaie à la fin de créer plusieurs sous dossiers pré-établis et je reviens clore le sujet si c'est bon.
ericire
Niveau 2
Niveau 2
Messages : 25
Enregistré le : lun. 12 nov. 2012 15:12
Status : Hors ligne

Re: concaténer des controls

#4

Message par ericire »

c'est impeccable
tout réussi
sujet clos
merci
Répondre