Page 1 sur 1

[R] Sélection item par double clic

Posté : lun. 11 mars 2013 08:12
par Ks10
Bonjour,

Je voudrais savoir si a partir d'une GuiCtrlCreateList() il était possible de sélectionner les items lié à celui ci ?

Exemple :

Code : Tout sélectionner

$List1 = GUICtrlCreateList("", 0, 0, 617, 474)
GuiCtrlSetData($list1, "Item1")
GuiCtrlSetData($list1, "Item2")
GuiCtrlSetData($list1, "Item3")
etc...
Je voudrais par exemple pouvoir sélectionner l'item1 avec un double clic pour pouvoir lui attribuer un changement. (Changer la ligne de couleur par exemple ^^, je connait la commande pour changer la couleur mais pas pour pouvoir sélectionner l'item)

j'espère que ma demande a été précise.
Je vous remercie d'avance.

Re: [..] Sélection item par double clic

Posté : lun. 11 mars 2013 11:20
par mikell
Avec ce code le double clic sur l'item retourne son index
► Afficher le texte

Re: [..] Sélection item par double clic

Posté : lun. 11 mars 2013 11:49
par Ks10
Le double clic fonctionne, j'ai réadapter la fonction à mon programme et voila ce que sa donne :

Code : Tout sélectionner

Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
 #forceref $hWnd, $Msg, $lParam
 Switch BitAND($wParam, 0x0000FFFF)
    Case $List1
        If BitShift($wParam, 16) = 2 Then   ; 1 = clic, 2 = dble clic
                $index = InputBox("Choix de la couleur", "Liste des couleurs disponibles : " & @CRLF & "- Vert" & @CRLF & "- Orange" & @CRLF & "- Rouge")
                If $index = "Rouge" Then GUICtrlSetColor($List1,  0xff0000)
               ;$index = GUICtrlSendMsg($List1, $LB_GETCURSEL, 0, 0)
               ;msgbox(0,"", $index)
       EndIf
EndSwitch
  Return 'GUI_RUNDEFMSG'
EndFunc
Le résultat voulu : Si l'utilisateur entre le mot rouge, il colorie la ligne qui est sélectionner.

Le résultat que j'ai : L'utilisateur met le mot rouge il colorie toute les lignes... Je sait que ce n'est pas la variable $list1 qu'il faut spécifié mais je ne sait pas laquelle pour sélectionner uniquement la ligne qu'on veux.

Re: [..] Sélection item par double clic

Posté : lun. 11 mars 2013 13:40
par mikell
Ks10 a écrit : je connait la commande pour changer la couleur mais pas pour pouvoir sélectionner l'item)
Hum tu m'as induit en erreur là :mrgreen:

Pour ce genre de truc je te conseille d'utiliser une Listview plutôt qu'une List, en effet la difficulté c'est pas la sélection par double clic c'est la couleur des items et dans une listview les items sont mieux différenciés donc plus facilement customisables
Une listview avec le style $LVS_NOCOLUMNHEADER a exactement le look d'une list

Re: [..] Sélection item par double clic

Posté : lun. 11 mars 2013 13:47
par Ks10
Le soucis avec une listview pour avoir un contrôle des items il faut déclaré une variable mais mon programme fonctionne comme sa :

- Tu a la liste view
- Tu appuie sur le bouton 1
- Tu entre le paramètre voulu
- Il affiche dans la liste
- Il écrit dans un fichier texte.

Lorsque je relance mon programme.
- Il lit le fichier texte et réaffiche les items dans la liste.

Cependant aucune variable n'est déclaré. Et du coup je n'est aucun contrôle sur mes items.

Re: [..] Sélection item par double clic

Posté : lun. 11 mars 2013 14:30
par mikell
Ben va falloir choisir ^^
Si tu veux colorer une ligne au double clic, faudra une listview et gérer les items différemment, en passant par une array par exemple
► Afficher le texte
Sinon tu ne pourras pas customiser tes items

Re: [..] Sélection item par double clic

Posté : mar. 12 mars 2013 05:49
par Ks10
Ok je vais essayer de voir ce que je peut faire alors ^^
Merci.