Page 1 sur 1
[R] Nom d'une variable + Incrémentation
Posté : dim. 27 juin 2010 20:53
par Sh4dows
Bonjour à tous !
J'aimerais une indication qui m'aiderait surement
Je voudrais savoir si il était possible de faire quelque chose du genre :
En gros le nom de ma variable plus une valeur !
A la base je l'utilise avec GUICtrlCreateMenuItem car je fais un Menu variable.
Tous est fonctionnel mais le seul problème est comment savoir sur quel item l'utilisateur click !
Pour cela je doit attribuer une valeur différente à chaque GUICtrlCreateMenuItem
Merci d'avance pour vos réponse.
Cordialement sh4dows
P.S : C'est difficile à expliquer
Re: [..] Nom d'une variable + Incrémentation
Posté : dim. 27 juin 2010 21:29
par timmalos
Votre problème a une solution, qui peut etre difficile sur certains points
Vous allez devoir utiliser une allocation dynamique, avec l'utilisation de Assign() et Eval(), en gros ces fonctions permettent de déclarer des variables dynamiques, avec des $i si vous le souhaitez, puis Eval permet d'obtenir ce que contient cette variable dynamique.
Les exemples de l'aide sont tres parlants, vous devriez y arriver.
Re: [..] Nom d'une variable + Incrémentation
Posté : dim. 27 juin 2010 21:33
par Sh4dows
Merci pour l'aide je vais bien regarder cela !
Re: [..] Nom d'une variable + Incrémentation
Posté : dim. 27 juin 2010 21:44
par jl56
Bonjour
Pour un problème similaire je stocke les variables ( handle ) dans un tableau
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
GUICreate("Menu variable", 701, 541, 192, 125)
GUISetBkColor(0xE0FFFF)
Dim $item_menu[11];dimensionnement du tableau = nombre de variable + 1
$menu = GUICtrlCreateMenu("menu")
For $i = 1 To 10
$item_menu[$i] = GUICtrlCreateMenuItem("sous menu " & $i,$menu); creation des sous menus
Next
GUISetState(@SW_SHOW)
Do
$msg = GUIGetMsg()
For $i = 1 To 10 ; boucle de test de chaque sosu menu
If $msg = $item_menu[$i] And $msg > 0 Then
MsgBox(0,"Vous avez choisi le sous menu ",$i)
Else
EndIf
Next
Until $msg = $GUI_EVENT_CLOSE
J'ai réduit à 10 variables
A+ JL56
Re: [..] Nom d'une variable + Incrémentation
Posté : dim. 27 juin 2010 21:46
par timmalos
C'est en effet une 2eme solution, un peu plus 'bricolée'
Re: [..] Nom d'une variable + Incrémentation
Posté : lun. 28 juin 2010 10:17
par Sh4dows
Je préfère la solution de jl56, par contre si je ne connait pas la taille du tableau à l'avance comment devrais je procédé ?
Car je pense qu'il y a 2 solutions :
- - Celle ou on bouffe de la mémoire
Merci d'avance !
Cordialement sh4dows
Re: [..] Nom d'une variable + Incrémentation
Posté : lun. 28 juin 2010 11:20
par jchd
Ici aussi deux solutions : soit tu redimmensionnes ton array pour chaque élément individuellement
ReDim $ar[UBound($AR + 1)]
soit par blocs de N entrées
ReDim $ar[UBound($AR + $N)]
ou encore avec un pourcentage d'augmentation
ReDim $ar[UBound($AR * 1.2)]
Dans les deux derniers cas, tu peux vouloir faire un ReDim au final pour ne conserver que la taille strictement utile.
Re: [..] Nom d'une variable + Incrémentation
Posté : lun. 28 juin 2010 11:39
par Sh4dows
Ok merci à vous tous je mets en Résolu !
Cordialement sh4dows
Re: [R] Nom d'une variable + Incrémentation
Posté : lun. 28 juin 2010 20:28
par mimione
Bonjour
Même si [R], j'vais quand même dire une bétise.
Est-ce que "Assign" ne remplirait pas le service demandé..
Si vraiment c'est une bêtise >> pas taper, merci.
Re: [R] Nom d'une variable + Incrémentation
Posté : lun. 28 juin 2010 23:33
par Sh4dows
mimione tu es minionne
Code : Tout sélectionner
Vous allez devoir utiliser une allocation dynamique, avec l'utilisation de Assign() et Eval(), en gros ces fonctions permettent de déclarer des variables dynamiques, avec des $i si vous le souhaitez, puis Eval permet d'obtenir ce que contient cette variable dynamique.
Regarde un peu plus haut déjà dit !
Cordialement sh4dows
Re: [R] Nom d'une variable + Incrémentation
Posté : mar. 29 juin 2010 18:36
par mimione
Je cours ce ce pas chez mon opticien..
