HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0330
LCListboxが選択されたら次5解決


LC

リンク

2008/3/30(Sun) 09:11:27|NO.14693

リストボックス、コンボボックスで指定されたら次のリストボックスを表示し
更にそのリストボックスで選択されたら結果を別の場所表示する。
リストボックスは削除せず選択される度に結果が変わる。
といった辞書のようなものを作ろうとしてます。

ボタンのようにstopの後選択されても動きがないようなのでループさしてみたのですが、
永遠とリストボックスが描画され続けます。
clsを使った場合はリストボックスが点滅するようになり、ループするたびに選択肢が元に戻る。
clrobjを使うとそもそもリストボックスが出てこなく・・・詰まってます。



ヘルプ内のサンプルスクリプトの

a=0:objsize 120,24 listbox a,120,"APPLE\nORANGE\nGRAPE" stop
の場合リストボックスで選択されているものが変わる度に表示する文字を変える時、
どこにmes入れるか、ループさせるのは何処になるか教えていただけますでしょうか。



この記事に返信する


inovia

リンク

2008/3/30(Sun) 09:59:55|NO.14694

こんな感じ?

a=0:objsize 120,24 //ID=0 listbox a,120,"APPLE\nORANGE\nGRAPE" //ID=1 button "決定",*set stop *set if a=0:x="王林\n紅玉\nふじ" if a=1:x="バレンシアオレンジ\nネーブルオレンジ\nブラッドオレンジ" if a=2:x="甲 州\n巨峰\nピオーネ" objprm 0,x clrobj 1 button "決定",*set2 stop *set2 clrobj 0,1 pos 0,0 if a=0:mes "あなたはりんご派ですね。" if a=1:mes "あなたはオレンジ派ですね。" if a=2:mes "あなたはぶどう派ですね。"



Megane

リンク

2008/3/30(Sun) 10:20:06|NO.14696


a=0:aa=0:objsize 128 sdim s , 100,4 sdim n1 , 16 sdim n2 , 16 s.0 = "↓ひとつ選んでください↓\nAPPLE\nORANGE\nGRAPE" s.1 = "ふじ\n紅玉\nジョナゴールド" s.2 = "↓品種はどうしますか↓\nバレンシア\nネーブル\nだいだい" s.3 = "↓品種はどうしますか↓\nマスカット\n巨峰\nデラウェア" listbox a,, s.0 ;aはリストボックスの選択状況を表す ;ループを抜け出すときには品種を示している ;aaは果物の種類を記憶する repeat wait 10 if a {if aa{ break ;aもaaも0でない → 果物も品種も選んだ }else{ objprm 0 , s.a ;aは0でないがaaは0 → 果物は選んだけれど品種はまだ aa=a ;aaに果物の種類を代入 a=0 ;選択されていない状況に戻す } } loop ;ここから注文内容の表示 notesel s.0 : noteget n1 , aa ;種類 notesel s.aa : noteget n2 , a ;品種 mes n1 + "の" + n2 + "が注文されました。" stop

変数aの値をループで判断するのがやりやすい方法でしょう。
そのとき、リストに表示する最初の行を説明みたいな内容にしておくと、
「aが0ならまだ選択されていない」と判断できます。

選択されたら、どれが選ばれたかを別の変数に記憶して、
objprm命令でオブジェクトの内容を書き換えてまた選択を待つわけですね。



Megane

リンク

2008/3/30(Sun) 10:21:35|NO.14697


s.1 = "↓品種はどうしますか↓\nふじ\n紅玉\nジョナゴールド"

失礼。訂正を忘れました。



inovia

リンク

2008/3/30(Sun) 10:50:52|NO.14698

>>14694
ミス修正。MeganeさんがLCさんの質問にピンポイントに答えてらっしゃっていますけど。

「if a=2:x="甲 州\n巨峰\nピオーネ"」の次の行に
b=aを追加。

最後の行のifの条件式a=?をb=?に変更。



LC

リンク

2008/3/30(Sun) 12:15:19|NO.14699

変数の値をループさせる、なるほどです。

最終的に最初の選択するリストボックスを残し
その指定された内容に応じて次の新しいリストボックスの中身を・・・としたかったのですが
ちょっと複雑になりそうですけど何とかなりそうです。


ちょっと組み上げてみます ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.