[R] GUICtrlSetOnEvent et paramètre de Fonction ???

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
ParMesSoisn
Niveau 1
Niveau 1
Messages : 2
Enregistré le : ven. 23 nov. 2007 17:23
Status : Hors ligne

[R] GUICtrlSetOnEvent et paramètre de Fonction ???

#1

Message par ParMesSoisn »

Bonjour,
j'ai créer une boucle qui affiche plusieurs GUI avec chacune, un label avec un ID different.

mon problème est que je n'arrive pas à faire afficher une nouvelle fenetre avec un label contenant l'ID de la fenetre d'origine.

allez moins de blabla ...
voici une partie de mon code :

Code : Tout sélectionner

...
While 1
    $id = $Line_data_Array[1]
...    
;affichage du Post
    GUICreate("E-Post-It", $largeur_fenetre, $hauteur_fenetre, $taille_W_ecran-$largeur_fenetre-5, $top, $WS_POPUP + $WS_BORDER,$WS_EX_TOPMOST + $WS_EX_TOOLWINDOW)
    
    $id_postit = GUICtrlCreateLabel ($id, 0, 0 )
;menu sur clic droit
        $contextmenu = GUICtrlCreateContextMenu ($text_postit)
            $edititem = GUICtrlCreateMenuitem ("Editer", $contextmenu)

    GUICtrlSetOnEvent($edititem, "Edition")
    
    GUISetState (@SW_SHOW); will display an empty dialog box
Wend

Func Edition()
    $edit_largeur = 320

    GUICreate(" Edition", $edit_largeur,120, @DesktopWidth/2-160, @DesktopHeight/2-45, "", $WS_EX_TOPMOST)
    $text = GUICtrlCreateInput ("", 10,  35, 300, 20)
    GUICtrlRead($titre_postit)
    GUICtrlSetData ( $text, GUICtrlRead($titre_postit))
    $OK = GUICtrlCreateButton ("Valider", 40,  75, 60, 20)
    $QUITTER = GUICtrlCreateButton ("Abandoner", $edit_largeur - (40+75),  75, 60, 20)
    GUICtrlSetOnEvent($QUITTER, "Quit")

    GUISetState (@SW_SHOW)
EndFunc

Func Quit()
    Exit
EndFunc
Le $text label retourne toujours le dernier ID ???
Je ne peux pas faire GUICtrlSetOnEvent($edititem, "Edition($id)") !?!

Pouvez-vous m'aider ???
Merci :wink:
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1550
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

#2

Message par sylvanie »

bonsoir,
c'est parcequ'à chaque nouvelle création de gui, tu écrase tes variable à chaque fois, du coups $titre_postit vaut la dernier contôle. Une var ne peut pas contenir plusuer valeur, sauf si c'est un tableau.
Mais .... Autoit est merveilleux, et il existe la macro @GUI_CtrlId qui renvois l'id du contôle clické (vrai uniquement en mode evènement, et c'est le cas), et en plus, la création des id s'incrémente d'une fenêtreà l'autre.
donc @GUI_CtrlId va correspondre à l'ID de "Editer" de la fenêtre active et @GUI_CtrlId-2 correspond à l'ID du label créé 2 Id plus tôt

Donc dans ta fonction Edition(), remplace

Code : Tout sélectionner

GUICtrlSetData ( $text, GUICtrlRead($titre_postit))
par

Code : Tout sélectionner

GUICtrlSetData ( $text, GUICtrlRead(@GUI_CtrlId-2))
et c'est gagné
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
ParMesSoisn
Niveau 1
Niveau 1
Messages : 2
Enregistré le : ven. 23 nov. 2007 17:23
Status : Hors ligne

#3

Message par ParMesSoisn »

Alors là moi je dit ... MERCI !
Merci pour la réponse
mais également pour l'explication !

je vais tester ça ... mais j'ai total confiance :wink:

@ + :wink:
Répondre