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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#1

Message 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 ...
Modifié en dernier par SagePourpre le ven. 01 août 2008 20:45, modifié 2 fois.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#2

Message 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).
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#3

Message 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...
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre