Page 1 sur 1

[R] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : ven. 23 déc. 2011 18:23
par Kagami
Bonjour,
Voilà, j'ai un petit problème avec une fonction (que j'ai reprise de ce programme: http://autoitscript.fr/forum/viewtopic. ... act#p40472)

Donc, voici la fonction en question:

Code : Tout sélectionner

        Case $ListM ; Lorsqu'on clique sur la liste
            $SelItem = _GUICtrlListBox_GetSelItemsText($ListM) ; On récupère l'item sélectionné dans $SelItem
            If $SelItem[0] <> 0 Then ; Si il y a bien un item de sélectionné alors
                GUICTrlSetData($GroupMemoActif, $IntituleMemo & ">" & $SelItem) ; On modifie l'intitulé du groupe $GroupMemoActif
                If $SelItem = "Credits" Then ; Si l'item sélectionné correspond à la key "Credits" alors
                    GUICtrlSetData($InputTitre, "Crédits") ; On modifie l'input $InputTitre
                    GUICtrlSetData($EditMemo, IniRead($IniFile, $SelItem[1], "Auteur", "")) ; On modifie la zone de saisie $EditMemo
                EndIf
            EndIf
Voila, la fonction est on ne peut plus simple à comprendre, seulement, je ne vois pas d'où peut venir l'erreur :S
Merci de votre aide.

Re: [..] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : ven. 23 déc. 2011 21:14
par mikell
$SelItem est une array

Code : Tout sélectionner

      Case $ListM ; Lorsqu'on clique sur la liste
            $SelItem = _GUICtrlListBox_GetSelItemsText($ListM) ; On récupère l'item sélectionné dans $SelItem
            If $SelItem[0] <> 0 Then ; Si il y a bien un item de sélectionné alors
                GUICTrlSetData($GroupMemoActif, $IntituleMemo & ">" & $SelItem[color=#FF0000][1][/color]) ; [color=#FF0000]ou peut-être $SelItem[0] ?[/color]
                If $SelItem[color=#FF0000][1][/color] = "Credits" Then ; Si l'item sélectionné correspond à la key "Credits" alors
                    GUICtrlSetData($InputTitre, "Crédits") ; On modifie l'input $InputTitre
                    GUICtrlSetData($EditMemo, IniRead($IniFile, $SelItem[1], "Auteur", "")) ; On modifie la zone de saisie $EditMemo
                EndIf
            EndIf

Re: [..] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : ven. 23 déc. 2011 21:21
par Kagami
C'est ce que j'avais mis au début ^^
Si ça peut t'aider, le problème vient très certainement de ceci: If $SelItem[0] <> 0 Then
Puisque lorsque je met un MsgBox après, elle ne s'affiche pas.
Merci de ton aide (:

Re: [..] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : sam. 24 déc. 2011 13:59
par mikell
Faudrait vérifier qu'il enregistre bien une sélection d'item si clic sur la liste

Code : Tout sélectionner

Case $ListM
    $sel = _GUICtrlListBox_GetSelCount ($ListM)
    If $sel = -1 Then 
        msgbox(0,"", "aucun item sélectionné")
    Else
        msgbox(0,"", $sel & "  items sélectionnés")
    EndIf

Re: [..] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : sam. 24 déc. 2011 14:57
par Kagami
Apparemment il n'enregistre aucune sélection puisque ça me retourne la première condition :/
C'est étrange quand même :d

Re: [..] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : sam. 24 déc. 2011 15:47
par mikell
Alors là faudrait me montrer le code complet (ou presque) histoire de pouvoir faire des essais
Heu à tout hasard, ça marche bien ça ?

Code : Tout sélectionner

Case $ListM
   MsgBox(0,"", "clic sur la liste")

Re: [..] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : sam. 24 déc. 2011 16:17
par Kagami
Oui, ça ça marche :p
C'est la sélection qui bug ^^
Le code complet est très simple puisque j'ai simplement reprit l'idée de mémo de silvere.
Je suis juste reparti de 0 pour pouvoir le modifier à ma sauce et mettre les éléments qui me paraissent le plus logique (d'où la liste permettant d'afficher tous les mémos)

Voici:
► Afficher le texte
Merci de ton aide (:

Re: [..] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : sam. 24 déc. 2011 16:20
par mikell
Ouah ! mets vite un spoiler/code sur ce post ! :mrgreen:

Re: [..] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : sam. 24 déc. 2011 16:23
par Kagami
Le spoiler >.<
Voila, tu peux reprendre la code, je viens tout juste de réapporter une légère modification.

Re: [..] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : sam. 24 déc. 2011 16:54
par mikell
Ouais bon pfff c'est toujours pareil, comment faire simple quand on peut faire compliqué.... Image

Code : Tout sélectionner

Case $ListM
    $txt = ControlCommand ($GUI, "",  $ListM, "GetCurrentSelection", "")
    If $txt<>"" Then
        MsgBox(0, "", $txt)
        GUICTrlSetData($GroupMemoActif, $IntituleMemo & ">" & $txt)
        If $txt = "Credits" Then
            GUICtrlSetData($InputTitre, "Crédits")
            GUICtrlSetData($EditMemo, IniRead($IniFile, $txt, "Auteur", ""))
        EndIf
    EndIf

Re: [..] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : sam. 24 déc. 2011 17:07
par Kagami
Ho *-*
Merci, ma fonction me paraissait très simple aussi >.<
En tout cas, merci comme toujours :D

Re: [R] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : sam. 24 déc. 2011 17:15
par mikell
c'est vrai que je suis un peu maniaque là-dessus
Tu utilises les UDF et tu te rends pas compte que tu rajoutes 500 Ko d'includes ce qui fait plusieurs milliers de lignes que ton script doit gérer
Regarde, en changeant 2 bricoles plus besoin de trucs lourds :wink:
► Afficher le texte

Re: [R] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : dim. 25 déc. 2011 00:56
par zeshrek
Hum... il me semblait que les fonctions non utilisées d'un include n'étaient pas complées ?

Re: [R] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : dim. 25 déc. 2011 10:31
par mikell
As such a feature is mentioned nowhere in the helpfile, did u notice this on the US forum ? provide the link please ! :shock:

Re: [R] Problème avec _GUICtrlListBox_GetSelItemsText

Posté : dim. 25 déc. 2011 16:23
par zeshrek
Au temps pour moi, apres vérification, ca a été demandé il y a plusieurs années, mais ca semble ne pas avoir été implémenté.
Domage, ca permettrait de faire un include de tout, et a la compilation, il ne garderait que le nécéssaire.