リストボックスコントロール

<< Click to Display Table of Contents >>

マニュアル > コントロールリファレンス > 基本 >

リストボックスコントロール


リストボックスコントロール (ListBox)

 

 

リストボックスコントロールは、複数行のテキスト一覧を表示できます。また、その中から1つを選択することができます。

 

cr_0042

 

cr_0043

 

テキストリストの設定

 

リストボックスコントロールへテキストリスト(テキストの一覧)を設定する方法は以下の3つです。

 

1)TextListプロパティであらかじめ設定しておく。

2)AddTextメソッドを用いてスクリプトから1行ずつ追加していく。

3)SetTextListメソッドを用いてスクリプトからまとめて設定する。

 

 

1)TextListプロパティにあらかじめ設定しておく。

 

エディタでTextListプロパティにあらかじめ設定しておきます。

ブラウザで表示時、自動的に設定されたテキストリストが表示されます。複数行設定したい場合は改行して入力します。

 

 

2)AddTextメソッドを用いて1行ずつ追加していく。

 

以下のサンプルでは、初期時に1000行をリストボックスへAddTextで追加しています。

 

cr_0044

 

 

 

event OnInitialize()
{
 for (var i = 0; i < 1000; i++)
 {
  this.AddText("Program line : " & ::CNumStr(i, 0, 4, F));
 }
}

 

 

 

3)SetTextListメソッドを用いてまとめて設定する。

 

以下のサンプルのLoadボタンは、ボタンを押すと"samplelist.txt"ファイルを読み込み、リストコントロールに設定します。

 

cr_0047

 

 

 

event OnMouseUp(button)
{
 var text;
 if (::LoadTextFile("samplelist.txt", text))
 {
  parent.EditList.SetTextList(text);
 }
}

 

 

 


hint

TextListプロパティはテキストリストの初期設定を定義するときに使用してください。スクリプト内でテキストリストをまとめて設定/取得を行いたい場合は、SetTextList/GetTextListメソッドを使用して下さい。


 

 

テキストリストの編集について

 

リストボックスコントロールには、テキストリストを編集するためのメソッドが用意されています。

 

AddText

行を末尾に追加する。

InsertText

行を挿入する。

DelText

行を削除する。

SetText

指定した行の文字を変更する。

 

以下は上メソッドを使用したサンプルです。

 

cr_0048

 

 

各メソッドの呼び出し方については、サンプルの上画像のボタンに記述されているスクリプトを参考にしてください。

 

 

 

テキストリストの選択について

 

リストボックスコントロールは、複数行のテキスト一覧の中から1つを選択することができます。選択された行の表示色はSelectColorプロパティで指定された色になります。

 

1)オペレータが行の選択を変更すると、OnSelectChangedイベントが呼び出されます。

以下のサンプルでは、OnSelectChangedイベントを用いて、現在選択されている行のインデックスとテキストをエディットボックスへ表示しています。

 

cr_0049

 

 

 

 

event OnSelectChanged(index, text)
{
 parent.ModifyEdit.Text = text;
 parent.IndexLabel.Text = index;
}

 

 

 

2)現在選択されている行のインデックス(0から始まる行番号)はSelectIndexプロパティで取得できます。

SelectIndexに出力バインド(例 OUT : $D0)することにより、現在選択されているインデックスがタグにリアルタイムに出力されます。以下のサンプルでは、SelectIndexプロパティに$D0タグをバインドしています。

一番上の行を選択すると$D0は0になります。次の行へ移動するごとに、$D0の値が1,2,3…になります。

 

cr_0050

 

 

3)SelectIndexプロパティに入力バインド(例 IN : $D0)することにより、タグの値に従って、選択行をリアルタイムに変更させることができます。

以下のサンプルでは、SelectIndexプロパティに500msごとに1ずつ増加するインクリメントタグ($INC500)を入力バインドしています。

 

cr_0051

 

 

4)現在選択されている行の内容(テキスト)を知りたい場合は、SelectIndexの代わりにSelectTextプロパティを利用します。

 

 

 

スクロールタイプについて

 

選択行が移動した時に、自動的にスクロールさせることができます。

ScrollTypeプロパティが"SCROLL"の場合、選択行が画面より下や上になると、選択行が画面からはみ出ないように自動的にスクロールが行われます。

また、ScrollTypeプロパティが"PAGE"の場合は、選択行が画面より下や上になると、1ページ分ページアップやページダウンが行われ、選択行が画面からはみ出ないように動作します。以下はスクロールタイプのサンプルです。

 

cr_0052

 


hint

ScrollHeadLines/ ScrollFootLinesプロパティでは、自動スクロールが行われる際に、現在選択中の行の上下に常に表示させておきたい行数を指定することができます。上画像のサンプルではそれぞれ1を設定しているので、自動スクロールの発生時に現在選択中の行の下に常に1行表示される動作となります。


 

 

 

GetData/SetDataメソッドについて

 

各行には表示されるテキスト以外に、リストに表示されないデータを格納させておくことができます。

この機能は、テキスト以外の情報を各行に保存したい時に利用できます。データの型は汎用で、ブール、数値、文字、時刻や配列(多次元も含む)も格納できます。

FindDataメソッドは、それらのデータを元に検索を行います。

検索の際は、値をいったん文字に変換して検索しています。配列の場合、最初の要素が検索のデータとして利用されます。

 

 

 

マウスホイール操作について

 

リストボックスコントロールはマウスホイール(上下スクロール)に対応しています。