ListBox dans RealBasic (débutant)

  • Créateur du sujet Créateur du sujet bidou
  • Date de début Date de début

bidou

Membre confirmé
19 Décembre 2002
49
0
Bonjour,
Voila je cree une ListBox dans RealBasic avec trois champs à l'interieur que je nomme respectivement un, deux, trois.
Je désire qu'en cliquant sur ces champs un message different s'affiche pour chaque champ
pour le un message : vous avez choisi l'option 1
pour le deux message : vous avez choisi l'option 2
Idem pour le 3
Voci donc ce que j'ai rentré comme code dans la partie contole de la ListBox correspondant à un clic sur cellulle :
row=1
column=1
MsgBox("Vous avez choisi l'option 1")
row=2
column=1
MsgBox("Vous avez choisi l'option 2")
row=3
column=1
MsgBox("Vous avez choisi l'option 3")

Malheureusement lorsque je clique sur n'importe quelle cellulle de la ListBox les 3 messages apparraisent systématiquement ! Pourquoi ?
 
Premièrement je voudrais dire que une grande communauté de developpeur francophonne se retrouve sur le forum RealBasic de MacFr.com (pour le moment fermé, ils doivent avoir un pb...)

Donc si j'ai un conseil à te donner poste plutot la bas, tu trouvera plus de programmateur comptétant... ( je précise que je n'ai rien à voir avec les développeurs de macfr, et que je suis un simple programmateur RB qui a trouver la bas plus de réponses... - Je pense qu'il faut prendre les ressources la ou elle sont...)

Concerant ton pb c'est très simple... Tu n'as fait aucun test de condition...
Dans les List Box pas multiples... Le numéro de la ligne sélectionnée est .ListIndex (donc Self.ListBox1.ListIndex ou me.ListIndex si tu es dans un évenement de l'objet) Attention la première linge est 0 !!

Donc ton code devient
<font class="small">Code:</font><hr /><pre>Select Case Me.ListIndex
Case 0
MsgBox ("Vous avez choisi l'option 1")
Case 1
MsgBox ("Vous avez choisi l'option 2")
Case 2
MsgBox ("Vous avez choisi l'option 3")
End Select </pre><hr />
Tu peux aussi écrire un code du type
<font class="small">Code:</font><hr /><pre> If Me.ListIndex&gt;-1 Then
MsgBox ("Vous avez choisi l'option "+str(Me.ListIndex+1))
End if </pre><hr />
Je précise que ces codes sont à mettre dans l'évenement Change() de la List Box...

 
Un grand merci Jmini. Cela fonctionne.
Bien que je ne comprenne pas pourquoi il faille plus mettre le code dans change que dans CellClick
 
Je n'utilise pas souvent les ListBox, et elles ont pas mal évoluée avec les dernière version...

CellClick convient tout à fait !!! (Change se produit plus souvent que CellClick, car change se produit aussi lors d'une déselection)

mais pour ce que tu veut faire CellClick convient tout à fait...

le paramettre row est en fait égal à Me.Listindex
Donc le code dans CellClick est :
<font class="small">Code:</font><hr /><pre>Select Case row
Case 0
MsgBox ("Vous avez choisi l'option 1")
Case 1
MsgBox ("Vous avez choisi l'option 2")
Case 2
MsgBox ("Vous avez choisi l'option 3")
End Select</pre><hr />
ou
Bloc de code:
MsgBox ("Vous avez choisi l'option "+str(row+1))
 
Ok encore merci pour toutes ces explications.
Mais finalement après avoir testé les deux méthodes, la méthode change me semble plus réactive. Bizarre !
 
<blockquote><font class="small">Post&eacute; &agrave; l'origine par jmini:</font><hr /> Premièrement je voudrais dire que une grande communauté de developpeurs francophonnes se retrouve sur le forum RealBasic de MacFr.com (pour le moment fermé, ils doivent avoir un pb...)


[/QUOTE]
Tout est rentré dans l'ordre : Forum RB chez MacFR

Sinon pour la différence entre CellClick et Change... Je ne suis pas asser doué pour t'expliquer précisément pourquoi... Peut être qu'en postant là-bas tu aura plus de réponces...