![]() | Programming Guide | WideStudio/MWT Index 目次 |
ツリーリスト
メソッドによるリストのデータ表示制御
ツリーリスト(WSCtreeList)または、WSClist のリスト種別をツリーリストに 設定したものに項目表示データを追加するには、リストの場合と全く同じよう に addItem メソッドを用います。addItem により、追加する文字列、追加す る位置を指定します。追加位置を省略すると、リストの末尾に追加されます。 また、リスト項目のネスト階層は、setItemValue メソッドで設定することが できます。引数には、設定したい項目の位置、値種別に WS_INDENT_LEVEL、 そして階層を指定します。何も設定しない場合は第0階層となり、最上位の状 態になります。setItemValue(pos,WS_INDENT_LEVEL,level); pos = 0,1,2,...,-1(最後尾) level = 0(top),1,2,3...図の様にツリーリストに項目を追加するサンプルです。
[ツリーリスト]#include <WScom.h> #include <WSCfunctionList.h> #include <WSCbase.h> //---------------------------------------------------------- //Function for the event procedure //---------------------------------------------------------- #include <WSCtreeList.h> extern WSCtreeList* newlist_001; void btnep1(WSCbase* object){ //リストの項目を全て削除。 newlist_001->delAll(); //リストの末尾に項目を追加。 newlist_001->addItem("item1"); newlist_001->setItemValue(-1,WS_INDENT_LEVEL,0); newlist_001->addItem("item2"); newlist_001->setItemValue(-1,WS_INDENT_LEVEL,1); newlist_001->addItem("item3"); newlist_001->setItemValue(-1,WS_INDENT_LEVEL,2); newlist_001->addItem("item4"); newlist_001->setItemValue(-1,WS_INDENT_LEVEL,3); newlist_001->addItem("item5"); newlist_001->setItemValue(-1,WS_INDENT_LEVEL,0); newlist_001->addItem("item6"); newlist_001->setItemValue(-1,WS_INDENT_LEVEL,1); //リストを変更した場合、最後に一度、更新。 newlist_001->updateList(); } static WSCfunctionRegister op("btnep1",(void*)btnep1);ツリーリストにおいて、注意すべき点は、項目間には親子関係のような特別な 関係が全く無く、単なるリスト表示に対して、各項目がインデントを指定され た状態で表示されると言うことです。したがって、最上位の項目を削除したか らといって、それ以降の階層の項目が無くなるといったことはありません。ま た、前項目とのインデントの差は、+1 までです。+1 以上差がある場合は、自 動的に +1 となるように補正されますのでご注意ください。プロパティからのツリーリストデータの設定
比較的項目数が少ない場合、プロパティから、一括して項目を設定することが できます。この場合、まず、WSNdataSource プロパティを WS_DATA_SOURCE_NONE に指定します。次に、WSNdata プロパティに下記に 示すような書式で設定します。
データ書式:(プロパティ WSNuseIcon が True の場合)icon_filename,indent_level,1=open/0=close,項目文字列\n...データ書式:(プロパティ WSNuseIcon が False の場合)indent_level,1=open/0=close,項目文字列\n...アイコン指定において、アイコンを省略した場合、プロパティ WSNiconPixmap で指定したアイコンが用いられます。#include <WScom.h> #include <WSCfunctionList.h> #include <WSCbase.h> //---------------------------------------------------------- //Function for the event procedure //---------------------------------------------------------- #include <WSCtreeList.h> extern WSCtreeList* newlist_001; void btnep1(WSCbase* object){ //リストの項目を全て削除。 newlist_001->delAll(); //リストにプロパティ経由でデータを設定 newlist_001->setProperty(WSNdataSource,WS_DATA_SOURCE_NONE); newlist_001->setProperty(WSNdata,",0,1,item1\n,1,1,item2\n,2,1,item3"); static WSCfunctionRegister op("btnep1",(void*)btnep1);ファイルからのツリーリストデータの設定
ファイル名を指定して、ファイルから一括して項目を設定することができます。 この場合、まず、WSNdataSource プロパティを WS_DATA_SOURCE_FILE に指 定します。次に、WSNdataSourceName プロパティにファイル名を指定します。 ビルダーからのプロパティ設定、プログラムからの設定で動作します。下記は プログラムでの設定の例です。#include <WScom.h> #include <WSCfunctionList.h> #include <WSCbase.h> //---------------------------------------------------------- //Function for the event procedure //---------------------------------------------------------- #include <WSCtreeList.h> extern WSCtreeList* newlist_001; void btnep1(WSCbase* object){ //リストの項目を全て削除。 newlist_001->delAll(); //リストにファイル経由でデータを設定 newlist_001->setProperty(WSNdataSource,WS_DATA_SOURCE_FILE); newlist_001->setProperty(WSNdataSourceName,"data.txt"); } static WSCfunctionRegister op("btnep1",(void*)btnep1); //data.txt の内容 $(WSDIR)/sys/pixmaps/bi16.xpm,0,1,item1 1,1,item2 2,1,item3 3,1,item4 $(WSDIR)/sys/pixmaps/bi16.xpm,0,1,item5 1,1,item6 2,1,item7 3,1,item8インスタンスからのツリーリストのデータ表示
インスタンス名を指定して、インスタンスから一括して項目を設定することが できます。この場合、まず、WSNdataSource プロパティを WS_DATA_SOURCE_INSTANCE に指定します。次に、WSNdataSourceName プロ パティにインスタンス名を指定します。下記の例では、WSCtextField のイン スタンス newtext_000 を指定しています。データの形式は、ファイル指定の 場合と変わりません。newtext_000 に入力されている文字列がリストに表示 されます。ビルダーからのプロパティ設定、プログラムからの設定で動作しま す。下記はプログラムでの設定の例です。この場合、入力フィールドのインス タンス newtext_000 に入力されている文字列がツリーリストの項目として表 示されます。#include <WScom.h> #include <WSCfunctionList.h> #include <WSCbase.h> //---------------------------------------------------------- //Function for the event procedure //---------------------------------------------------------- #include <WSCtreeList.h> extern WSCtreeList* newlist_001; void btnep1(WSCbase* object){ //リストの項目を全て削除。 newlist_001->delAll(); //リストにインスタンス経由でデータを設定 newlist_001->setProperty(WSNdataSource,WS_DATA_SOURCE_INSTANCE); newlist_001->setProperty(WSNdataSourceName,"newtext_000"); } static WSCfunctionRegister op("btnep1",(void*)btnep1);
Copyright(C) WideStudio/MWT Development Team, 1999-2005 | Last modified: Jul 31, 2005 |