[R] Récupérer l'item selectionné d'une ListView à colonnes

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

[R] Récupérer l'item selectionné d'une ListView à colonnes

#1

Message par Habibsbib »

Bonjour,
Tout est dans le titre. Voilà un exemple, que j'appliquerais à mon code :

Code : Tout sélectionner

GUICreate("listview items", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
    GUISetBkColor(0x00E0FFFF)
    $listview = GUICtrlCreateListView("Processus|UC", 10, 10, 200, 150);,$LVS_SORTDESCENDING)
    $List = ProcessList()
    For $x = 2 To $List[0][0]
        GUICtrlCreateListViewItem($List[$x][0] & "|"  ,$listview)
    Next
    GUISetState()


 
A côté de ça, j'ai donc une boucle principale, avec un bouton en bas.
Question : comment faire interagir le bouton et la liste, en récupérant le texte du premier Item de la ligne sélectionnée quand le bouton est pressé ? J'ai déja essayé avec _GUICtrlListView_GetItemSelected, mais j'ai rien compris :? Comment faire ? (à noter que mes recherches sur le fofo n'ont rien donné non plus).

Merci de votre aide, Habib.
Modifié en dernier par Habibsbib le lun. 14 déc. 2009 17:58, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#2

Message par Tlem »

_GUICtrlListView_GetItemSelected sert à savoir si l'item est sélectionne ou non.

Pour votre besoin, utilisez :

Code : Tout sélectionner

#Include <GuiListView.au3>


        Case $Bouton1
            $Indice = _GUICtrlListView_GetSelectedIndices($listview)
            MsgBox(0, '', $Indice)
Attention l'index est sur une base zéro. ;)
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é".
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListVi

#3

Message par Habibsbib »

Merci beaucoup, je vais m'aider de ça et voir si ça marche.
:)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#4

Message par Tlem »

Cela fonctionne puisque je vous ai mis le code que j'ai testé. ;)
Sinon, je vous aurait donné que le nom de la fonction. :P
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é".
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#5

Message par Habibsbib »

Habibsbib a écrit : Voilà un exemple, que j'appliquerais à mon code...
En plus, je ne suis pas sûr que ça corresponde à mes besoins, c'est pour ça que je préciserais plus tard :P
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#6

Message par Tlem »

Cela n'empêche que la réponse à la question à été donnée. Donc => [R]. :roll:
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é".
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#7

Message par Habibsbib »

Peut être que je me suis mal exprimé, mais j'ai bien précisé vouloir obtenir le texte de l'item, et pas son classement dans la liste. Merci quand même. Quelqu'un a-t'il une autre solution ?
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#8

Message par Yogui »

ben ça fonctionne :lol:

dans cette exemple j'utilise deux approche

► Afficher le texte
édit pour corriger un petit bug et surtout pour ajouter que la solution la plus propre est celle de Tlem (comme toujours) puisqu'elle permet de récupérer l'indice du tableau et donc d'afficher directement la valeur de la seconde colonne


re - édit pour retirer l'affichage de l'indice (msgbox) qui semble gèner
Modifié en dernier par Yogui le lun. 14 déc. 2009 14:37, modifié 2 fois.
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#9

Message par Habibsbib »

Pourtant ce bout de code m'a retourné un nombre alors que je veux directement récupérer le texte de l'item. Je veux dire, si la liste est :

.process1.exe
.process2.exe
.process3.exe

et que c'est .process2.exe qui est selectionné, et ben je veux que mon script me retourne directement ".process2.exe". Est-ce possible ?
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#10

Message par Yogui »

au vu de votre réponse vous n'avez pas testé mon code ...
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#11

Message par Habibsbib »

Vraiment confus... je passe cnore pour un boulet ce coup là ^^ Effectivement votre code marche, merci de votre réponse. J'avais essayé de stocker cette commande dans une variable, puis de récupérer le texte avec une array, mais cela n'avait pas marché. Je vais ré-essayer, et donner des retours. Je passe en résolu, pour ne pas énerver Tlem.
Merci, et pardonnez mon manque d'attention :roll:
EDIT: pourtant, j'ai ré-essayé le code de Tlem, mais cela ne donnait qu'un numéro. Je ne suis pas fou, tout de même ^^ Merci de votre réponse Yogui.
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#12

Message par Yogui »

Je ne comprend pas mon code utilise une méthode perso mais aussi la methode de Tlem les deux boutons donné bien la même solution avec un + pour celle de Tlem car elle permet justement de récupérer l'indice de ligne et donc de récupérer les info des colonnes :s

Code : Tout sélectionner

$Indice = _GUICtrlListView_GetSelectedIndices($listview)
If $Indice < 0 Then
MsgBox(0, "", "merci de séléctionner une ligne")
Else
;MsgBox(0, '', $Indice)
MsgBox(0, '', $List[$Indice + 2][0]&" --> "&$List[$Indice + 2][1])
c'est bien le code de Tlem la :s :?: :!: :!:
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#13

Message par Habibsbib »

Si tu regardes bien, non ce n'est pas ce qu'il a mis...
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#14

Message par Yogui »

Tlem a écrit :            $Indice = _GUICtrlListView_GetSelectedIndices($listview)
Yogui a écrit :$Indice = _GUICtrlListView_GetSelectedIndices($listview)
effectivement il à mis une tabulation est pas moi :p
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Récupérer l'item selectionné d'une ListView à colonnes

#15

Message par Tlem »

Habibsbib a écrit :pourtant, j'ai ré-essayé le code de Tlem, mais cela ne donnait qu'un numéro. Je ne suis pas fou, tout de même ^^
C'est bien ce que le code que j'ai donné est sensé faire car à l'origine, vous n'aviez pas précisé que vous vouliez le texte de l'item (sinon j'aurais rajouté une simple fonction).

Mon code était :

Code : Tout sélectionner

#Include <GuiListView.au3>


        Case $Bouton1
            $Indice = _GUICtrlListView_GetSelectedIndices($listview)
            MsgBox(0, '', $Indice)
J'avais mis l'include pour vous éviter de chercher et ensuite si vous regardez bien, la variable s'appelle $Indice cela sous entend qu'il s'agit d'un nombre et non d'un texte.
Si il avait été précisé qu'il fallait le texte de l'indice, j'aurais rajouté l'utilisation de la fonction _GUICtrlListView_GetItemText() qui retourne le texte d'un Item en fonction de son indice. :P

Cela aurait pu ce résumer à ceci :

Code : Tout sélectionner

#Include <GuiListView.au3>


        Case $Bouton1
            MsgBox(0, 'Texte de la sélection', _GUICtrlListView_GetItemText($listview, _GUICtrlListView_GetSelectedIndices($listview)))
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é".
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [R] Récupérer l'item selectionné d'une ListView à colonnes

#16

Message par Habibsbib »

Habibsbib a écrit :comment faire interagir le bouton et la liste, en récupérant le texte du premier Item de la ligne sélectionnée quand le bouton est pressé ?
:roll:

Merci de votre dernière réponse, elle marche parfaitement.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Récupérer l'item selectionné d'une ListView à colonnes

#17

Message par Tlem »

Certes, mais cette partie du texte n'y était pas au début.
Dernière édition par Habibsbib le Lun 14 Déc 2009 à 17:58, édité 1 fois.
:roll:
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é".
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [R] Récupérer l'item selectionné d'une ListView à colonnes

#18

Message par Habibsbib »

Je n'ai pas rajouté cette partie du texte, mais j'ai corrigé les coquilles que j'avait glissées dans le texte, et j'ai précisé que mes recherches n'avaient rien donné. Je n'ai pas edité cette partie, j'en suis sûr.

Merci de vos réponses, j'ai terminé la partie récup' des items de mon code, et ça marche à la perfection.
Avatar du membre
ayuckers
Niveau 4
Niveau 4
Messages : 77
Enregistré le : mer. 28 oct. 2009 14:15
Localisation : Drome
Status : Hors ligne

Re: [R] Récupérer l'item selectionné d'une ListView à colonnes

#19

Message par ayuckers »

je me permet de rajouter une solution en partant de la solution donné par Tlem :
oici le bout de code sorti de son context :
► Afficher le texte

voici le code intégré a l'exemple :
► Afficher le texte
Voila j'ai rajouter la fonction qui permet de classer la ListView par ordre Alphabétique et Maintenant le _GUICtrlListView_GetSelectedIndices fonctionne a condition d'utiliser un _GUICtrlListView_GetItem
Répondre