CRS - オブジェクトツリー
指定したオブジェクトをオブジェクトツリーの指定位置へ挿入したい
Biz/Browser DTではオブジェクトの定義順序を順序だてて取得することができない関係上、
Object.insertメソッドを使用して、指定したオブジェクトのひとつ前の位置にオブジェクトを挿入してもあまり意味がありません。
ただし、TabFormや、ToolBoxFormはオブジェクトの定義順序によってタブ位置が決定される為、タブ位置の移動などに関して、Object.insertメソッドを利用することができます。
Form Crs0235{ width = 535; height = 158; x = 0; y = 0; TabFrame tframe{ x = 16; y = 58; width = 500; height = 79; tabMovable = true; TabForm tf1{ title = "タブフォーム1"; BgColor = new Color("red"); } TabForm tf2{ title = "タブフォーム2"; BgColor = new Color("blue"); } TabForm tf3{ title = "タブフォーム3"; BgColor = new Color("green"); } } Button bt1 { x = 310; y = 15; width = 200; height = 30; title = "タブフォームの追加"; Function onTouch(e){ # タブ数を取得 var objcnt = ^.tframe.count; # 全角変換 var tmpstr = ( objcnt + 1 ).toString().fullp(); var rgb = 20 * objcnt > 255 ? 255 : 20 * objcnt ; # 追加するTabFormのインスタンスを作成 var tmptf = new TabForm{ title = "タブフォーム" + tmpstr; BgColor = new Color( rgb, rgb, 0, 255 ); } # TabFrameにTabFormを追加 ^.tframe.append(tmptf,"tf"+ ( ( objcnt + 1 ).toString() )); # 追加したTabFormを選択状態にする ^.tframe.value = ^.tframe.count - 1; } } Button bt2 { x = 23; y = 15; width = 120; height = 30; title = "<< タブ移動"; Function onTouch(e){ # 現在選択されているタブのindex番号を取得する var selectedNum = new Number(^.tframe.value); # 左端のタブフォームの場合は処理しない if( selectedNum == 0 ){ return; } # 選択されているタブフォームを取得 var targetTf = ^.tframe.getForm(^.tframe.value); # 選択されているタブフォームを消します targetTf.delete(); # insertは指定したオブジェクトの前に追加される為、1つ前のオブジェクトを指定します。 # 1つ前のオブジェクトのリファレンスが存在しない場合は、appendを行います。 ^.tframe.getForm(selectedNum-1).insert(targetTf); } } Button bt3 { x = 153; y = 15; width = 120; height = 30; title = "タブ移動 >>"; Function onTouch(e){ # 現在選択されているタブのindex番号を取得する var selectedNum = new Number(^.tframe.value); # 右端のタブフォームの場合は処理しない if( selectedNum + 1 == ^.tframe.count ){ return; } # 選択されているタブフォームを取得 var targetTf = ^.tframe.getForm(^.tframe.value); # 選択されているタブフォームを消します targetTf.delete(); # insertは指定したオブジェクトの前に追加される為、2つ後ろのオブジェクトを指定します。 # ただし、既に選択タブフォームは削除されている為、1つ後ろのオブジェクトの指定となります。 # 1つ後ろのオブジェクトのリファレンスが存在しない場合は、appendを行います。 if( ^.tframe.getForm(selectedNum+1) == null ){ ^.tframe.append(targetTf); # 1つ後ろのオブジェクトのリファレンスが存在する場合は、insertを行います。 }else{ ^.tframe.getForm(selectedNum+1).insert(targetTf); } } } }
Biz-Collections Bizの宝箱 トップへ
Biz/Browser DT・Biz/Designer DT TIPS集 トップへ