Page 1 sur 1

[R] Lire le texte d'une listbox

Posté : jeu. 30 déc. 2010 18:10
par Xtroyer
Salut à tous =)

Ayant été étonné de ne pas voir de sujet là-dessus lors de ma recherche (je dois vraiment être idiot :lol: ), j'en crée un.
J'aimerais savoir comment savoir ce que l'utilisateur à sélection dans la listbox.
Par exemple, l'utilisateur choisi dans la listbox "Chien", comment mettre "Chien" dans une variable ?

Merci =)

EDIT : J'ai fini par utiliser des combobox x)

Re: [..] Lire le texte d'une listbox

Posté : jeu. 30 déc. 2010 19:39
par Xtroyer
Je suis sûr que c'est un truc vraiment simple en plus :( J'ai test GUICrtlRead() et ça veut pas :x

Y'a vraiment personne pour m'éclairer svp :?:

Re: [..] Lire le texte d'une listbox

Posté : jeu. 30 déc. 2010 20:07
par zeshrek
????
Tu es sur que tu as lu l'aide de GUICtrlCreateList () ?
Non parceque y a un exemple quand même... et puis il y a les exemples donnés ici même

Re: [..] Lire le texte d'une listbox

Posté : jeu. 30 déc. 2010 21:51
par Xtroyer
J'ai lu la doc, et franchement, je vois vraiment pas :?
J'ai teste plein de truc, mais j'arrive pas à savoir quel Item est choisis :x

Et le pire c'est qu'il me faut absolument l'info pour continuer mon code, du coup je bloque depuis une heure :lol:

Je vais pété un plomb, j'étais sûr de moi en utilisant le GuiCtrlSetData, même pas tiens :roll:

Re: [..] Lire le texte d'une listbox

Posté : jeu. 30 déc. 2010 22:12
par mystere
Essay sa.

Code : Tout sélectionner

$lecture=guictrlread($vraiable_de_ta_listbox)
msgbox(4096,"test",$lecture)

Re: [..] Lire le texte d'une listbox

Posté : jeu. 30 déc. 2010 22:27
par Xtroyer
J'ai déjà essayé, ça n'affiche rien dans la box :/

Re: [..] Lire le texte d'une listbox

Posté : ven. 31 déc. 2010 00:42
par matwachich
Salut!
Je pense qu'il est impossible que le problème soit de la ListBox elle même, je suis sure que c'est ailleur.
L'aide est très claire
To obtain the value of the control see GUICtrlRead.
Et l'exemple aussi (celui de l'aide et le mien ci-dessous)

Code : Tout sélectionner


#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 299, 171, 192, 124)
$List1 = GUICtrlCreateList("", 88, 16, 121, 97)
GUICtrlSetData(-1, "Item1|Item2|Item3")
$Button1 = GUICtrlCreateButton("Button1", 112, 128, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            MsgBox(0,"",GUICtrlRead($List1))

    EndSwitch
WEnd
 
Alors, donne nous ton code, et on pourra l'analyser

Re: [..] Lire le texte d'une listbox

Posté : ven. 31 déc. 2010 00:48
par bloodwolff
Je suis sur qu'il modifie le handle après l'Avoir déclaré :)

Re: [..] Lire le texte d'une listbox

Posté : ven. 31 déc. 2010 02:22
par Xtroyer
Voici mon code :oops:
► Afficher le texte

Re: [..] Lire le texte d'une listbox

Posté : ven. 31 déc. 2010 11:10
par legend
Le problème est dans l'identification de plusieurs list.
D'ailleurs dans le guictrlsetdata tu devrais ajouter l'id du control, sinon il attribuera a toute les list la même valeur (quand tu met -1), et tu l'a peut être pas découvert parce que tes list ont la même valeur ^^.
Bref, pour ton problème c'est simple et basic fallait savoir ce que c'est une list.
J'explique, fallait juste cliquer sur "le nom de l'animal" et non pas tourner (descendre et remonter) la liste. essaye de faire une liste de grande mesures(sans les trucs pour tourner a droite) et tu comprendra mieux.
Bonne journée et n'oublie pas d'éditer le titre si le sujet est résolus :)

Re: [..] Lire le texte d'une listbox

Posté : ven. 31 déc. 2010 11:55
par Jerome
Coucou,

Nop c'est pas sa.

En faite, quand tu fait descendre tes "chien, chat, cheval", tu ne les sélectionne pas, par défaut c'est "".

Essaye de saisir chien puis de cliquer dessus (le mettre en surlignement) et tu veras que sa marchera.







Jérôme

Re: [..] Lire le texte d'une listbox

Posté : ven. 31 déc. 2010 12:07
par Xtroyer
A ok, faut donc que je trouve un moyen de mettre en surligné automatiquement quand on passe dessus =')

Re: [..] Lire le texte d'une listbox

Posté : ven. 31 déc. 2010 12:10
par Jerome
Pourquoi utiliser une liste comme celle ci ?


Ne pouvez - vous pas utiliser une combobox ou autre ?




Jérôme

Re: [..] Lire le texte d'une listbox

Posté : ven. 31 déc. 2010 12:56
par Xtroyer
je trouvais ça plus classe :mrgreen: C'est quand même vachement sympa =)

Re: [..] Lire le texte d'une listbox

Posté : ven. 31 déc. 2010 13:09
par zeshrek
Moi j'aurai bien vu qqchose comme ca :

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

; On rajoute 2 Includes nécéssaires
#include <EditConstants.au3> 
#include <UpdownConstants.au3>

; On rajoute 3 variables
$MaxAnimal=5 
Dim $AnimalList[$MaxAnimal]=["","Chat","Cheval","Chien","Lapin"]
$DefaultInput1=0

$GUI_A = GUICreate("Ajout", 402, 297, 193, 123)
$INP_B2 = GUICtrlCreateInput("", 40, 88, 121, 21)
$Label2 = GUICtrlCreateLabel("Nom :", 48, 16, 110, 17)
$INP_B1 = GUICtrlCreateInput("", 40, 56, 121, 21)
$INP_B3 = GUICtrlCreateInput("", 40, 120, 121, 21)
$INP_B4 = GUICtrlCreateInput("", 40, 152, 121, 21)
$BT_Valider2 = GUICtrlCreateButton("Valider", 112, 208, 177, 41, $WS_GROUP)
$L_B1 = GUICtrlCreateList("", 248, 56, 89, 19)
GUICtrlSetData(-1, "||Chat|Cheval|Chien|Lapin")
$L_B2 = GUICtrlCreateList("", 248, 88, 89, 19)
GUICtrlSetData(-1, "||Chat|Cheval|Chien|Lapin")
$L_B4 = GUICtrlCreateList("", 248, 152, 89, 19)
GUICtrlSetData(-1, "||Chat|Cheval|Chien|Lapin")
$L_B3 = GUICtrlCreateList("", 248, 120, 89, 19)
GUICtrlSetData(-1, "||Chat|Cheval|Chien|Lapin")
$Label1 = GUICtrlCreateLabel("Animal", 272, 16, 33, 17)
; on rajoute la pseudo liste déroulante, ainsi que le champs dans lequel sera mise l'info sélectionnée
$Input1 = GUICtrlCreateInput($DefaultInput1, 280, 35, 58, 21)
$Input0 = GUICtrlCreateInput("", 248, 35, 72, 19)
GUICtrlSetState($Input1, $GUI_HIDE)
$Updown1 = GUICtrlCreateUpdown($Input1)
$Input2 = GUICtrlCreateInput("", 40, 35, 121, 19)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
    ; on gere la pseudo liste déroulante. Quand on dépasse les bornes en + & en - on revient a l'autre bout, pour que ca tourne en rond
    if GUICtrlRead($Input1) <> $DefaultInput1 Then
        $DefaultInput1=GUICtrlRead($Input1)
        if $DefaultInput1 < 0 then $DefaultInput1 = $MaxAnimal-1
        if $DefaultInput1 >= $MaxAnimal then $DefaultInput1 = 0
        GUICtrlSetData($Input1,$DefaultInput1)
        GUICtrlSetData($Input0,$AnimalList[$DefaultInput1])
        GUICtrlSetData($Input2,$AnimalList[$DefaultInput1])
    EndIf
WEnd
 
Plutot que de modifier ton code, j'ai juste rajouté une ligne en haut de ton formulaire.