[R] Génération dynamique de boutons

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Avatar du membre
Fox177
Niveau 2
Niveau 2
Messages : 18
Enregistré le : mer. 06 juin 2012 20:30
Status : Hors ligne

[R] Génération dynamique de boutons

#1

Message 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
Modifié en dernier par Fox177 le mer. 02 avr. 2014 19:54, modifié 1 fois.
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

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

#2

Message par PandiPanda »

Bonjour, ceci?
► Afficher le texte
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

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

#3

Message 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:
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

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

#4

Message 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é)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Fox177
Niveau 2
Niveau 2
Messages : 18
Enregistré le : mer. 06 juin 2012 20:30
Status : Hors ligne

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

#5

Message par Fox177 »

Merci pour vos réponses aussi rapides.
Grâce à vous, je me coucherais moins bête ce soir :D
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

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

#6

Message 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
Répondre