[R] Récupérer Index Item d'un menu

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

[R] Récupérer Index Item d'un menu

#1

Message par Hugues »

Bonjour,

J'aimerai savoir comment récupérer le text d'un Item d'un menu?

Je crée un menu à partir d'un fichier *.ini (une partie, les autres sont en dur dans mon script ^^), mais vu que le crée je ne peux plus (ou vois pas comment) utiliser la fonction Func WM_COMMAND()

Voici mon code:
► Afficher le texte
et la partie WM_COMMAND
► Afficher le texte
Merci par avance.
Modifié en dernier par Hugues le jeu. 16 oct. 2014 20:19, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Récupérer Index Item d'un menu

#2

Message par orax »

À la ligne

Code : Tout sélectionner

_GUICtrlMenu_InsertMenuItem($hLineChoice, $j - 1 , "&" & $ReadSection[$j][1], "$e_id" & $ReadSection[$j][0], $ReadSection[$j-1][0])
le 4ème paramètre "$e_id" & $ReadSection[$j][0] n'est pas un nombre, c'est une chaîne. Il faudrait utiliser eval() pour obtenir la valeur de $e_id... (si c'est bien une variable), mais eval reste déconseillé.
► Afficher le texteexemple
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récupérer Index Item d'un menu

#3

Message par mikell »

Si le nombre de clés tirées du ini peut varier, tu peux aussi essayer de stocker les itemID dans une array
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Récupérer Index Item d'un menu

#4

Message par Hugues »

Bonjour, merci à vous 2 :mrgreen:

J'ai presque reussi, j'arrive bien à récupérer mes indes, maintenant c'est avec la partie WM_COMMAND que j'ai un soussaille...

Je voudrais que une fois l'index récupéré, je fasse une boucle qui me récupére la cléf correspondant à l'index contenu dans mon fichier ini pour lancer ma fonction.

Ci joint mon code fonctionnel avec le fichier ini.

Code:
► Afficher le texte
Fichier ini:
► Afficher le texte
Merci par avance
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Récupérer Index Item d'un menu

#5

Message par Hugues »

Bon, j'ai encore presque reussi de ce que je voulais :mrgreen:

Sauf que maintenant c'est au niveau de la gestion des autres menu qui se croisent au niveau des index... pfff

Par exemple, si je séléctionne "Fichier" puis "fermer l'application, il va m'ouvrir un array alors que moi je veux que l'application se ferme...

Erreur:
► Afficher le texte
Mon code complet:
► Afficher le texte
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récupérer Index Item d'un menu

#6

Message par mikell »

Code : Tout sélectionner

    $itemID = _WinAPI_LoWord($wParam)
    Select
        Case $itemID   ; et là ysspass quoi si $itemID = $e_idExit ?
:mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Récupérer Index Item d'un menu

#7

Message par Hugues »

Bin c'est le caca... Le problème c'est que j'ai créé des ComboBox et quand je clic dessus ca me renvoie des Index... Et qui me mette le bazard, donc j'ai fais ça pour "éliminer" les contrôles qui ont un Index < 1000
► Afficher le texte
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récupérer Index Item d'un menu

#8

Message par mikell »

?

Code : Tout sélectionner

    $itemID = _WinAPI_LoWord($wParam)
    Select
         Case $itemID = $e_idExit
            Exit
        Case ($itemID > 999) AND ($itemID <> $e_idExit)
            For $i = 0 to UBound($IDMenu) - 1
                 If $itemID = $IDMenu[$i] Then ConsoleWrite($ReadSection[$i][1] & @crlf)
            Next
    EndSelect
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Récupérer Index Item d'un menu

#9

Message par Hugues »

Bin non, car si tu testes mon code, tu verras que lorsque tu sélectionnes l'item "Fermer application", il retourne un index 2 et si tu sélectionnes l'item "ABS9 ligne 1" du menu Choix de la ligne, il retourne lui aussi un index 2... donc dans le cas

Code : Tout sélectionner

Select
         Case $itemID = $e_idExit
            Exit
bin ca ne marche pas...
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Récupérer Index Item d'un menu

#10

Message par orax »

C'est normal. $e_idExit = 1002 et l'ID dans $IDMenu pour "ABS9 ligne 1" = 1002 aussi.
J'ai changé, dans la boucle For, l'ID de début (j'ai mis 1100 au lieu de 1000) pour éviter un conflit.
► Afficher le texte
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [R] Récupérer Index Item d'un menu

#11

Message par Hugues »

Ok impeccable, merci à vous 2! :mrgreen:
Répondre