.items プロパティは文字列の配列です。通常の配列のように配列を操作したり、append、 findItem、 deleteItem などのメソッドを使用したりできます。メソッドを使用して内容を変更したり、その結果を .items プロパティに何度も必要なだけ割り当てることができます。
次のサンプル スクリプトでは、2 つの初期項目の格納された listBox UI 要素を含むダイアログ ボックスを作成します。ここには、listBox の内容を操作するための 3 つのボタンもあります。
最初のボタンを押すと、新しい項目がリストの末尾に追加されます。
2 番目のボタンを押すと、現在選択されている項目の前に新しい項目が追加されます。
3 番目のボタンを押すと、現在選択されている項目をリストから削除します。
詳細は、次のコード内のコメントを参照してください。
例:
|
rollout test "Test"
(
listBox testList items:#("Item 1","Item 2")
button addToList "Add Item To End Of List" width:180
button insertToList "Insert After Current Item" width:180
button removeFromList "Remove Current Item" width:180
-- 新しい項目を配列に追加します。append によって結果の配列が返されるので、
-- 結果を .items プロパティに直接割り当てても問題ありません。
on addToList pressed do
testList.items = append testList.items ("Item "+ (testList.items.count+1) as string)
-- 現在の項目の前に新しい項目を挿入します。
on insertToList pressed do
(
-- 現在の項目の選択が存在している (0 より大きい) ことを確認します。
if testList.selection > 0 do
(
-- insertItem は結果の配列ではなく OK を返すので、
-- 式の結果を直接プロパティに割り当てることはできません。
-- したがって、ローカル変数内で項目の配列のコピーを取得する必要があります。
temp_array = testList.items
-- ...ローカル変数内で temp. array の挿入を行います。
insertItem ("Item "+ (testList.items.count+1) as string) temp_array testList.selection
-- ...temp. array を .items プロパティに戻します。
testList.items = temp_array
)
)
-- 現在選択している項目をリストから削除します。
on removeFromList pressed do
(
-- 項目が残っているかどうか、有効な選択が存在するかどうかをチェックします。
-- 次に、現在の項目を削除します。DeleteItem によって結果配列が返されます。
-- したがって、結果を .items プロパティに直接割り当てることができます。
if testList.items.count > 0 and testList.selection > 0 do
testList.items = deleteItem testList.items testList.selection
)
)
createDialog test 200 220
|