Page 1 sur 1

[R] Déclaration Gui Ctrl par boucle

Posté : sam. 31 août 2013 14:07
par Tyrael
Bonjour,

Je souhaite créer des Label et des Input (ou autre) par l'intermédiaire d'une boucle.
Un truc du genre :

Code : Tout sélectionner

For $i = 1 To 5
    Global $LblJo & $i = GUICtrlCreateLabel("Joueur " & $i, 20, 50)
    Global $InJo & $i = GUICtrlCreateInput("Joueur " & $i, 70, 48, 100)
Next
 
Evidemment ce code ne fonctionne pas mais c'est cette idée que j'aimerai réaliser.
Je suis quasiment certain que cette demande a déjà été formulé mais j'ai chercher sur internet et je n'ai pas trouvé (j'ai du mal à trouver les bon mots clé je pense).

Merci d'avance

Re: [..] Déclaration Gui Ctrl par boucle

Posté : sam. 31 août 2013 14:25
par alex1205
Bonjour,

Voilà un code fait à l'arrache :

Code : Tout sélectionner

;== MéTHODE BRUTE ==;
;Utilisation d'Assign et Eval
For $i = 1 To 5
    Assign("LblJo" & $i, GUICtrlCreateLabel("Joueur " & $i, 20, 50))
    Assign("InJo" & $i, GUICtrlCreateInput("Joueur " & $i, 70, 48, 100))
Next
; pour récuperer les valeurs
Eval("LblJo1") ; si tu veux récuperer $LblJo1

;== MéTHODE SIMPLE ==;
;Utilisation d'arrays
Global $LblJo[5], $InJo[5]
For $i = 1 To 5
    $LblJo[$i] = GUICtrlCreateLabel("Joueur " & $i, 20, 50)
    $InJo[$i] = GUICtrlCreateInput("Joueur " & $i, 70, 48, 100))
Next
;pour récuperer
$labeljoueurnumero1 = $LblJo[1]
Deux possibiltés : Eval&Assign ou les arrays.

Alex1205

Re: [..] Déclaration Gui Ctrl par boucle

Posté : sam. 31 août 2013 14:45
par mikell
ça ne fonctionne pas à cause du "Global $LblJo & $i"
Il faut que les variables soient déclarées avant, dans une array par exemple

Code : Tout sélectionner

Global $labels[5]
GuiCreate("test")
For $i = 0 To 4
    $labels[$i] = GUICtrlCreateLabel("Joueur " & $i+1, $i*50+60, 50)
Next
GuiSetState()

While 1
 $msg = GuiGetMsg()
 If $msg = -3 Then Exit
 For $i = 0 To 4
    If $msg = $labels[$i] Then Msgbox(0,"", GuiCtrlRead($labels[$i]))
 Next
Wend
Tu peux aussi utiliser ce genre de code (trouvé sur le forum)
► Afficher le texte
Je déconseille l'utilisation de Assign et Eval (délicat et acrobatique) : http://www.autoitscript.fr/forum/viewto ... =11&t=6665

EDIT
J'avais pas vu le code d'alex
Bon ben mon 2ème code montre une méthode n°3

Re: [..] Déclaration Gui Ctrl par boucle

Posté : sam. 31 août 2013 15:13
par Tyrael
Ok merci à vous deux.
C'était Eval & Assign que j'avais déjà utilisé (mais impossible de me souvenir des fonction et de remettre la main sur mon code xD)

J'avais pas pensé à un Array je pense que je vais utiliser cette méthode merci de votre aide (et de la rapidité :))