選択肢¶
行頭が _ の行は、選択肢になります。さくらスクリプトの \q[ラベル,ID] に変換されます。
_ラベル
_ラベル【タブ】ID
_ラベル【タブ】ID【タブ】引数1【タブ】引数2…
| 書き方 | 変換 |
|---|---|
_ラベル |
ラベルと ID を同じ文字列にする |
_ラベル【タブ】ID |
ラベルと ID を別にする |
_ラベル【タブ】ID【タブ】引数… |
\q[ラベル,ID,引数1,引数2…] にする(Mc201-11以降。引数を渡す) |
ラベルと ID、引数の () は展開されます。タブがいくつ続いても 1 つの区切りです。_ だけで文字列がない行は無視されます。
*質問
好きな季節は?
_春【タブ】春の話
_夏【タブ】夏の話
*春の話
春はあたたかいですね。
選択されたとき¶
選択肢が選ばれると、ベースウェアから OnChoiceSelect が届きます(Reference0 が ID)。
- 辞書に
*OnChoiceSelectがあれば、それが実行されます。 - なければ、
IDと同じ名前の文が実行されます。
ID が On で始まる場合や、http:// https:// script: で始まる場合は、ベースウェアがイベントの呼び出し・URL・スクリプトとして処理するので、OnChoiceSelect を経由しません。
引数を渡す¶
ID の後ろにタブで区切って書いたものは、\q の 3 番目以降の引数になります(Mc201-11以降)。選ばれると、ID と同じ名前の文が実行され、引数は call と同じく (A0) (A1) … で受け取れます。
*止めるタイマーを選ぶ
:どれを止める?
_1番【タブ】タイマーを止める【タブ】1
_2番【タブ】タイマーを止める【タブ】2
*タイマーを止める
$キッチンタイマー(A0)タイマ=0
:(A0)番を止めたよ。
- 引数付きの選択肢では、ベースウェアから
OnChoiceSelectEx(Reference1 が ID、Reference2 以降が引数)が届きます。辞書に*OnChoiceSelectExも*OnChoiceSelectもなければ、里々がこれを受けて ID の文を実行します。 - 辞書に
*OnChoiceSelectExか*OnChoiceSelectがあるときは、これまでどおりそちらに任せます(引数は Reference から読みます)。 - ID の文が何も返さなかったときも、続けて届く
OnChoiceSelectで同じ文がもう一度実行されることはありません。 - 引数に
,や]を入れたいときは、SSP の書き方に従って"で囲みます。 - 引数のない選択肢は、これまでどおり
OnChoiceSelectで処理されます。
選択の記録¶
里々は、選択肢の ID にラベルと番号を付けて、選ばれたときに次の変数へ記録します。
| 変数 | 内容 |
|---|---|
選択ID |
選ばれた選択肢の ID |
選択ラベル |
選ばれた選択肢のラベル |
選択番号 |
その選択肢が、応答の中で何番目の選択肢だったか(1 から) |
OnChoiceSelect OnChoiceSelectEx OnChoiceEnter のいずれでも記録されます。
前後に文字列を入れる¶
$選択肢開始時 と $選択肢終了時 で、選択肢の前後に文字列を挿入できます。終了時の既定は \n です。