Page 1 sur 1
[R] Aide boucle For-Next
Posté : mer. 01 janv. 2014 22:03
par Caliphe
Salut,
Alors voilà, prenons par exemple 8 InputBox de nom : $Input1, $Input2, etc...
Les InputBoxs de 1 à 4 représentent des noms de comptes et les autres leur mot de passe.
Ce que je n'arrive pas à faire est que lorsque mon programme à finis de faire les choses qu'il doit faire avec le compte1 il recommence avec le compte2.
Voici un exemple de ce que j'ai essayé de faire :
► Afficher le texte
Code : Tout sélectionner
Local $n = 4
For $i = 1 to 4
$Ndc = "Input"
$1= GUICtrlRead($&($Ndc&$i))
$2= GUICtrlRead($&($Ndc&$n))
If ... Then ...
Else
...
Send($1)
...
Send($2)
...
EndIf
$i = $i+1
$n = $n +1
Next
Avec ce code j'aurais voulu que à chaque boucle un nombre est ajouté à $Input ( ex: première étape $Input1 et deuxième $Input2 etc..). Mais je me rend bien compte que ce n'est pas possible. C'est pourquoi je redemande votre aide !
Merci à vous !
Re: [..] Aide boucle For-Next
Posté : mer. 01 janv. 2014 22:40
par jguinch
Dans ce cas, l'idéal est de passer par un tableau pour stocker les ID des différents contrôles.
Je te conseil de regarder le fonctionnement des tableaux car ça s'avèrera très utile par la suite (voir inévitable).
En attendant, voilà un petit exemple (assez simple) de création d'un formulaire et récupération des valeurs, en utilisant des tableaux et des boucles :
► Afficher le texteExemple
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
GUICreate("", 400, 200)
$nbCommptes = 4 ; Nombres de champs à créer
Local $aLogins[$nbCommptes] ; on déclare un talbeau, qui contiendra les ID des contrôles pour les logins
Local $aPasswords[$nbCommptes] ; on déclare un talbeau, qui contiendra les ID des contrôles pour les mots de passe
; Une boucle va créer les champs, (la position en Y est calculée à chaque nouvelle ligne)
For $i = 0 To $nbCommptes - 1
$posY = $i * (10 + 20) + 10 ; Calcul de la position Y des champs
GUICtrlCreateLabel ( "Compte " & $i + 1, 10, $posY + 2, 50, 20) ; Création des labels "Compte 1", "Compte 2" ...
$aLogins[$i] = GUICtrlCreateInput ("", 60, $posY , 200, 20) ; Création des champs login
$aPasswords[$i] = GUICtrlCreateInput ("", 280, $posY , 80, 20, $ES_PASSWORD)
Next
$ok = GUICtrlCreateButton("OK", 10, $i * (10 + 20) + 10, 50, 25)
GUISetState()
While 1
$msg = GuiGetMsg()
If $msg = $GUI_EVENT_CLOSE Then Exit
If $msg = $ok Then
; Une autre boucle pour lire les valeurs
For $i = 0 To $nbCommptes - 1
MsgBox(0, "Valeurs : ", "Champs " & $i & " : " & GUICtrlRead($aLogins[$i]) & "/" & GUICtrlRead($aPasswords[$i]))
Next
EndIf
WEnd
Re: [..] Aide boucle For-Next
Posté : mer. 01 janv. 2014 23:32
par Caliphe
Je pense que c'est ta solution que je cherchais mais est-il possible de nommer les inputboxs créées ? Car j'en ai besoin pour y entrer des valeurs venants d'un fichier ini.
EDIT : peut-être en faisant :
?
Re: [..] Aide boucle For-Next
Posté : jeu. 02 janv. 2014 01:00
par Caliphe
Merci beaucoup jguinch, ça marche !