メインコンテンツまでスキップ
バージョン: 開発中

SET LIST ITEM

SET LIST ITEM ( {* ;} list ; itemRef | * ; newItemText ; newItemRef {; sublist ; expanded} )

引数説明
*演算子指定時, listはオブジェクト名 (文字列) 省略時, listはリスト参照番号
listInteger, Textリスト参照番号 (* 省略時), または リストオブジェクト名 (* 指定時)
itemRef | *演算子, 倍長整数項目参照番号, または 0: リストに最後に追加された項目, または *: リスト中のカレント項目
newItemTextText新しい項目テキスト
newItemRefInteger新しい項目参照番号
sublistInteger項目に添付する新しいサブリスト, または 0: サブリストがない場合 (現在のサブリストを取り除く), または -1: 変更しない
expandedBooleanオプションのサブリストの展開/折りたたみ

このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。

説明

SET LIST ITEM コマンドは、list引数に渡した参照番号またはオブジェクト名のリストにおいて、itemRefで指定した項目を変更します。

1番目の * 引数を渡した場合、list 引数はフォーム中のリストオブジェクトのオブジェクト名 (文字列) です。この引数を渡さない場合、list 引数はリスト参照番号 (ListRef) です。1つしかフォーム上でリストオブジェクトを使用しない場合、いずれのシンタックスも使用できます。同じリストの複数のリストオブジェクトがフォーム上にあり、2番目の * を渡してカレントの項目を処理する場合、リストオブジェクトごとにカレント項目が異なるため、オブジェクト名に基づくシンタックスを使用しなければなりません。

itemRefには参照番号を渡すことができます。渡した項目参照番号を持つ項目が存在しない場合、コマンドは何も行いません。オプションとしてitemRefに0を渡し、APPEND TO LISTコマンドを用いてリストへ最後に追加される項目を指定することができます。
最後に、itemRefには * を渡すことができます。この場合、コマンドはリストのカレント項目に対して適用されます。手動で複数のリスト項目が選択されている場合、最後に選択された項目がカレントリスト項目になります。選択された項目が存在しない場合、コマンドは何も行いません。

項目参照番号を使用して作業を実行する場合、項目がユニークな参照番号を持つリストを作成します。そうでなければ、項目を区別できません。詳細についてはの説明を参照してください。

newItemTextに項目の新しいテキストを渡します。項目参照番号を変更する場合、newItemRefに新しい値を渡します。変更しない場合は同じ値を渡します。

項目にサブリストを添付する場合、サブリストの参照番号をsubListに渡します。この時、新たなサブリスを展開するにはexpandedTrueを、そうでない場合はFalseを渡します。

項目にすでに添付されているサブリストを切り離す場合は、sublistに0を渡します。この場合、GET LIST ITEMコマンドを使用して、そのリストの参照番号をあらかじめ取得しておくとよいでしょう。そうすれば、リストが必要なくなったときにCLEAR LISTコマンドを使用して削除することができます。

項目のサブリストプロパティを変更しない場合は、sublistに-1を渡します。

Note: 引数sublistexpandedはともにオプションですが、指定する場合は組み合わせて指定してください。

例題 1

hListはユニークな参照番号が付いた項目を持つリストです。以下のボタン用オブジェクトメソッドは、現在選択されているリスト項目にサブ項目を追加します。

 $vlItemPos:=Selected list items(hList)
 If($vlItemPos>0)
    GET LIST ITEM(hList;$vlItemPos;$vlItemRef;$vsItemText;$hSublist;$vbExpanded)
    $vbNewSubList:=Not(Is a list($hSublist))
    If($vbNewSubList)
       $hSublist:=New list
    End if
    vlUniqueRef:=vlUniqueRef+1
    APPEND TO LIST($hSubList;"New Item";vlUniqueRef)
    If($vbNewSubList)
       SET LIST ITEM(hList;$vlItemRef;$vsItemText;$vlItemRef;$hSublist;True)
    End if
    SELECT LIST ITEMS BY REFERENCE(hList;vlUniqueRef)
 End if

例題 2

GET LIST ITEMコマンドの例題参照

例題 3

APPEND TO LISTコマンドの例題参照

参照

GET LIST ITEM
GET LIST ITEM PROPERTIES
SET LIST ITEM FONT
SET LIST ITEM ICON
SET LIST ITEM PROPERTIES