その他のキーメソッドについては、REFERENCE「キーメソッド一覧」を参照してください。
%addC() キーの末子にキーツリーを加えるメソッドです。
既存のキーをコピーとして追加したり、tree関数と組み合わせて使用することで動的にキーの内容を変更することが可能です。
引数:
(key)挿入するキーツリー,
[(int)キーツリーのトップキーを挿入する (=false)],
[(int)繰り返しの回数(=1)]
戻り値:
(key)挿入したキーツリーの長姉キー
サンプルでは、行追加ボタンクリック時に、非表示で定義してある行列定義の行を表示エリアに追加しています。また、列追加ボタンでは、%addCの第2引数にfalse(=0)を設定し、行列定義の行の子要素(入力可能な列キー)のみ追加しています。行追加(5個)ボタンでは、第3引数に繰り返し回数を設定し、5行分のキーを追加しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
Kf(_Method_addC){ Pe{ /*キーステーションが最初に実行するキーセット*/ N(_main); } } K(_main){ Se{ @area{~border{~style="solid";}~margin="30"{~top;~left;~right;~bottom;}} @row{~back{~color="#ffffffff";}~border{~style="solid";~width{~top="0";~left="0";~right="0";~bottom="1";}}} @col{~border{~style="solid";~width{~top="0";~left="0";~right="1";~bottom="0";}}} } De{ (int).selectRow=0; } U{ /* 非表示(R0)の行列定義 */ R0(#base){ R(#row,@row){ Cbb(@col){ Bp{ #me<<2%editing=true; /* 選択行数を設定 */ .selectRow?=#me\<#row%num-1; } Bo{ #me<<2%editing=false; } } } } /* 表示エリア */ R(#area,@area){ Pe(#Init){ /* 初期表示 #areaの末子に行を追加する */ #me\<#area%addC(#base#row); } } R0.3{ Cb("行追加"){ Bs{ /* #areaの末子に行を追加する */ #me\<#area%addC(#base#row); } } Cb("列追加"){ Bs{ /* 第2引数にfalse(=0)を設定し、#rowの末子に列のみ追加する */ #me\<#area#row(.selectRow?)%addC(#base#row,0); } } Cb("行追加(5個)"){ Bs{ /* #areaの末子に#rowを5回繰り返し追加する */ #me\<#area%addC(#base#row,1,5); } } } } } |
Method_addC.ksf 2.22 KB
実行結果