Page 1 sur 1

[R] Génération dynamique de boutons

Posté : mer. 02 avr. 2014 10:09
par Fox177
Bonjour,
J'ai besoin de générer dynamiquement des boutons mais je n'arrive pas à différencier les boutons lorsqu'on leur clique dessus. Je m'explique:

Je génère les boutons de la manière suivante:

Code : Tout sélectionner

for $i = 1 to $total_count
            $manage_image_list_btn[$i] = _GuiLabelCreateButton(IniRead(@ScriptDir & "\data\main.ini", "Images Urls", $i, False), 0, $total_top, 11, 700, -1, 0xb5b5b5)
            $total_top = $total_top + 30
    Next
 
Mon problème est d'arriver à récupérer quelle est la case du tableau $manage_image_list_btn[] associée au bouton sur lequel on a cliqué...
J'ai essayé de la manière suivante mais ça ne fonctionne malheureusement pas :( :

Code : Tout sélectionner

while 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    case $GUI_EVENT_CLOSE
        Exit
    Case $manage_image_list_btn
        for $i  = 1 to $total_count
            if GUIGetMsg() = $manage_image_list_btn[$i] Then
                MsgBox('','',$i)
            EndIf
        Next

    EndSwitch
WEnd
En gros ce que je voudrais:
Lorsque que l'on clique sur un de ces boutons, ça exécute une fonction avec en paramètre le numéro du bouton sur lequel on a cliqué.

J'espère avoir été clair.
Merci pour votre aide :D

Re: [..]Génération dynamique de boutons

Posté : mer. 02 avr. 2014 12:29
par PandiPanda
Bonjour, ceci?
► Afficher le texte

Re: [..]Génération dynamique de boutons

Posté : mer. 02 avr. 2014 12:33
par TommyDDR
Bonjour,
Il me semble que GUIGetMsg() va vous renvoyer ET retirer les éléments présent dans la file.
Je vous conseille fortement d'activer le mode événementiel.

Voici votre script (J'ai spéculé quant au contenu de la fonction _GuiLabelCreateButton) intégrant le mode événementiel et vous indiquant le bouton/label cliqué.
► Afficher le textecode
EDIT : Grillé par pandipanda :evil:

Re: [..]Génération dynamique de boutons

Posté : mer. 02 avr. 2014 14:06
par mikell
Le mode événementiel est préférable dans ce genre de cas
On peut aussi passer par GUIRegisterMsg
► Afficher le texte
Ce n'est qu'un exemple (mettre une msgbox bloquante dans "Func WM_COMMAND" n'est pas conseillé)

Re: [R] Génération dynamique de boutons

Posté : mer. 02 avr. 2014 19:56
par Fox177
Merci pour vos réponses aussi rapides.
Grâce à vous, je me coucherais moins bête ce soir :D

Re: [..]Génération dynamique de boutons

Posté : mer. 11 juin 2014 15:23
par davzell
mikell a écrit :Le mode événementiel est préférable dans ce genre de cas
On peut aussi passer par GUIRegisterMsg
► Afficher le texte
Ce n'est qu'un exemple (mettre une msgbox bloquante dans "Func WM_COMMAND" n'est pas conseillé)
Est ce qu'il serait possible de faire le même genre de gui dynamique en utilisant des répertoires Windows pour créer les bouton

je m'explique, dans un répertoires (par exemple C:\software) j'ai différents sous répertoires (C:\software\prog1, C:\software\soft1,...) contenant chacun un .exe du même nom que le sous répertoire ou il est placé.

je voudrais que la gui dynamique me crée différents boutons avec le nom du sous répertoire et que quand j'appuis sur le bouton ça me lance l'exe présent dans le sous répertoire.

Comme ça des que j'ajoute des programmes dans mon C:\software je n'ai pas besoin de refaire la gui.

merci d'avance