Page 1 sur 1

[R] Problème de bouton créés par un tableau.

Posté : ven. 01 août 2008 15:26
par SagePourpre
J'ai un petit soucis... Comment faire pour que les boutons créés à l'aide
d'un tableau réagisse ?

Que chaque bouton renvoie son propre message. ...

Voilà un exemple simple ( 24 bouton et chacun, lorsque pressé, doit réagir en
me renvoyant $i ...

ha... J'suis sur que c'est pas compliqué mais ce matin, ça l'est .

Code : Tout sélectionner

#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 625, 445, 193, 125)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Dim $button
For $i = 1 to 24 
    $button = GUICtrlCreateButton($i,0+$i*12,0,10,10)
    GUICtrlSetData(-1,$i)
Next

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $button
            for $i = 1 to 24
                if $i = $button Then
                    MsgBox(0,"","")
                EndIf
                Next

    EndSwitch
WEnd
Il me manque juste le pourquoi du comment réaliser cette petite chose
toute simple ...

Re: [...] Problème de bouton créés par un tableau.

Posté : ven. 01 août 2008 17:39
par Tlem
Merci de faire un effort sur la présentation de votre code.
Celui que vous aviez posté était par trop espacé et mal identé...
Utilisez Scite4AutoIt pour taper votre code puis faites CTRL+T et enfin copier/coller votre code.
Évitez aussi de laisser trop d'espace entre les lignes de code.

En ce qui concerne votre problème, cela ne peut fonctionner en ce sens, car la variable $button ne peut contenir l'ID que d'un seul bouton.
Si vous voulez obtenir quelque chose, il faudrait incrémenter cette variable de la valeur de $i, mais dans ce cas le traitement par Case de votre boucle ne peut fonctionner.
Regardez plutôt du coté du mode évènementiel, car dans ce cas vous pourriez aussi incrémenter la variable contenue dans la fonction GUICtrlSetOnEvent et donc rediriger vers une fonction unique qui traitera chaque bouton (Voir http://www.autoitscript.fr/autoit3/docs ... ntMode.htm).

Re: [R] Problème de bouton créés par un tableau.

Posté : ven. 01 août 2008 18:25
par SagePourpre
oops... d'accord, je vais faire attention.



J'ai trouvé !! Finalement, à force de chercher les mots-clés qui
se rapprochaient.

Voilà l'information, tiré du forum anglais, à force de recherche.
******************
I would rewrite that to use GuiOnEventMode,
and assign all button hits to one function, where
@GUI_CTRLID or ControlGetText($Form1_1, "", @GUI_CTRLID)
would determine the action taken.

*****************
En bref, En envoyant tous les boutons à la même fonction, une fonction
qui récupère le texte du contrôle pour réagir selon ce même texte.


:D

Mon projet se concrétise tranquilement...