Page 1 sur 1

[R] Pb script pour remplir un champ par rapport a une liste

Posté : lun. 24 nov. 2008 18:10
par africanism
Bonjour a tous
voila je debute
je vient de faire un script mais je bloque sur un truc j'ai fait un menu avec des champ

j'ai un champ liste

Code : Tout sélectionner

GUICtrlCreateCombo("Domaine", 144, 152, 201, 25)
$Domaine1 = GUICtrlSetData (-1, "D1|PHARMA")
quel est la commande send pour reseigner par rapport au choix que j'ai fait dans la liste.

Merci a tous

Re: [..] Pb script pour remplir un champ par rapport a une liste

Posté : lun. 24 nov. 2008 18:48
par Tlem
En fait, vous confondez certaines choses.
La commande Send n'est généralement utilisée que pour contrôler une autre application que la votre.

Dans votre cas, vous devriez attribuer la variable $Domaine1 à la ligne GUICtrlCreateCombo("Domaine", 144, 152, 201, 25) car comme cela la variable contiendra le handle du combo que vous venez de créer.
Ce handle vous permettra par la suite de lire ou écrire le contrôle.

La ligne devrait donc être :

Code : Tout sélectionner

$Domaine1 = GUICtrlCreateCombo("Domaine", 144, 152, 201, 25)
Ensuite la ligne GUICtrlSetData (-1, "D1|PHARMA") vous permet de mettre les valeurs D1 et PHARMA dans le contrôle.
La variable -1 est là pour signaler que l'action est faite pour le contrôle qui précède et donc si vous devez mettre cette ligne ailleurs dans votre code, il faudra remplacer le -1 par le handle du contrôle concerné.

Voilà, je pense que le décor est planté et que la création d'un contrôle associé à une variable ainsi que l'attribution d'une valeur à celui-ci par son handle vous parait moins obscure (si ça l'était bien sur).

Ensuite pour répondre à votre question, il y à deux solution pour faire ce que vous cherchez à faire.
Soit lors de l'attribution des valeurs du Combo :

Code : Tout sélectionner

GUICtrlSetData (-1, "D1|PHARMA", "PHARMA")
soit n'importe ou dans votre code avec ceci :

Code : Tout sélectionner

GUICtrlSetData ($Domaine1, "PHARMA)"
Et comme je suis parti pour les explications, lorsque vous aurez besoin de lire la valeur sélectionnée dans le Combo, un simple :

Code : Tout sélectionner

$Choix = GUICtrlRead($Domaine1)
vous renverra la valeur sélectionnée. :mrgreen:

Re: [..] Pb script pour remplir un champ par rapport a une liste

Posté : mar. 25 nov. 2008 10:10
par africanism
merci pour ta reponse
je l'ai mit en application

Code : Tout sélectionner

$Form1 = GUICreate("Form1", 633, 447, 193, 125)
$NomPC = GUICtrlCreateLabel("Nom du Poste", 144, 32, 71, 17)
$Domaine = GUICtrlCreateLabel("Domaine", 144, 112, 46, 17)
$Site = GUICtrlCreateLabel("Site", 144, 192, 22, 17)
$User = GUICtrlCreateLabel("User", 144, 273, 26, 17)
$Password = GUICtrlCreateLabel("Password", 144, 353, 50, 17)
$Input1 = GUICtrlCreateInput("Sxxxxxx", 144, 72, 201, 21)
$Domaine1 = GUICtrlCreateCombo("", 144, 152, 201, 25)
GUICtrlSetData (-1, "D1|PHARMA", "PHARMA")
$Site1 = GUICtrlCreateCombo("", 144, 233, 201, 25)
GUICtrlSetData (-1, "GTLYA|GTLYB", "GTLYB")
$Input2 = GUICtrlCreateInput("", 144, 313, 201, 21)
$Input3 = GUICtrlCreateInput("", 144, 393, 201, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
$OK = GUICtrlCreateButton("OK", 432, 176, 129, 113, 0)
GUISetState(@SW_SHOW)
maintenant comme je peut replir cette ligne par rapport a ce qui a ete replit dans le menu.

Code : Tout sélectionner

netdom renamecomputer Sxxxxxx /newname:nouveau_nom_ordinateur /userd:domaine\nom_utilisateur /passwordd:mot_de_passe
CDT ET MERCI

Re: [..] Pb script pour remplir un champ par rapport a une liste

Posté : mar. 25 nov. 2008 11:40
par africanism
c'est bon j'ai trouve la commande en testant un peu.

Code : Tout sélectionner

send("netdom renamecomputer Sxxxxxx /newname:"& guictrlread($Input1)&" /userd:"& guictrlread($Input2)&" /passwordd:"& guictrlread($input3)&" /force")

Re: [..] Pb script pour remplir un champ par rapport a une liste

Posté : mar. 25 nov. 2008 11:57
par Tlem
La coloration syntaxique du code est réservée aux forums :
  • - Exemples de script
    - Fonctions et UDF
    - Tutoriels
Merci.