チェックボックスのテーブルボックスにインデックスを付ける方法全て、
私はチェックボックスの n テーブルボックスを持っています。 それらの一部を選択した状態にするにはどうすればよいでしょうか。
LB_b = Lineup Box(N Col(1));
nR = 10;
nC = 10;
SCB1 = String Col Box( "", {} );
For( i = 1, i <= nR, i++,
SCB1 << Add Element( Char( i ) )
);
TB1 = Table Box( SCB1 );
For( i = 1, i <= nC, i++,
Insert Into( TB1, Check Box( Repeat( {" "}, nR ), <<SET heading=""></SET>ツリー構造を見ると、なぜ要素にアクセスできないのか疑問に思います。 次のようなことを試してみましたが、うまくいきませんでした。 また、目標は、チェック ボックスの列を選択できるようにすることではなく、マトリックス内の 1 つのチェックボックスを選択できるようにすることです。
</CODE></PRE><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-108906" slang="en-US" mode="NONE">Re: チェックボックスのテーブルボックスにインデックスを付ける方法</LINGO-SUB><LINGO-BODY id="lingo-body-108906" slang="en-US" mode="NONE"><P>このコードは、保存された 1 と 0 の行列からチェックボックスを設定します。</P>
<PRE><CODE class=" language-jsl">// Set some random values in this matrix
saved_cbmat =
[ 1 0 0 1 0 0 0 0 0 0,
0 0 0 0 0 0 0 0 0 0,
0 1 0 0 0 0 0 0 0 0,
0 1 0 0 0 0 1 0 0 0,
0 1 0 1 0 0 1 0 1 0,
0 0 0 0 0 0 0 0 0 1,
0 0 0 0 0 0 0 0 1 1,
0 0 0 0 0 0 0 0 1 0,
0 0 0 0 0 0 0 0 1 0,
0 0 0 0 0 0 0 0 0 0];
n = 10; // # rows
m = 10; // # cols
a = 1::n;
// Create a list of empty text fields as checkbox labels
cb_list = {};
for (i = 1, i <= n, i++,
cb_list[i] = "";
);
cbmat = j(n, m, 0);
// Create the window
nw = new window("Test",
tb = table box(
ncb = number col box("", a),
),
okb = button box("OK",
for (i = 1, i <= m, i++,
for (k = 1, k <= n, k++,
cbmat[k, i] = cb[i] << get(k);
),
);
show(cbmat);
nw << close window;
),
);
// Create an array of checkbox columns
cb = {};
// Add the checkboxes
for (i = 1, i <= m, i++,
cb[i] = checkbox(cb_list);
cb[i] << set heading(char(i));
tb << append(cb[i]);
);
// Preload the checkboxes from the saved matrix
for (i = 1, i <= m, i++,
for (k = 1, k <= n, k++,
on_off = saved_cbmat[k, i];
cb[i] << set(k, on_off);
),
);
TB1["CheckBoxBox(1)"] << select ; <BR />
Re: チェックボックスのテーブルボックスにインデックスを付ける方法@pmrozそして@txnelson 、
ご回答ありがとうございます。 ただし、できれば、私の質問の主な部分、つまり、それらを選択済みに設定するにはどうすればよいか(悪い - チェックを入れるように尋ねるべきでした)は対処されていないように思えます。 チェックボックスをオンにする方法を教えていただけますか?
私は思う@pmrozの応答は、チェックボックスにインデックスを付ける方法を提供しますが、個々のチェックボックスごとではなく、列ごとに参照していると思います。 私が求めているものをもう少し詳しく説明してみます。
私が投稿したスニペットでは、次のような選択可能なチェックボックスのマトリックスが表示されます。

これで、ユーザーが選択を行った場合、次のコマンドを使用して選択内容をアンロードできます。
NW = New Window("Test",
VLB0 = V List Box(Align(center),
LB_b
)
);
VLB0 << Append(
H List Box(
BB_TargetMatrix = Button Box( "OK",
ResMat = {};
// loop through each row
For( i = 1, i <= nR, i++,
ResMat[i] = {};
// loop through each column getting values
For( r = 1, r <= nC, r++,
ResMat[i][r] = TB1[CheckBoxBox( r )] << get( i )
);
);
ResMat = Matrix( ResMat );
)// end of button box
)// end of H List Box
);
ただし、いくつかのチェックボックスを事前にチェックした状態でテーブルをボックス化する方法を知りたいです。 テーブルボックスと同じサイズの行列があり、チェックボックスをオンに設定するために使用したいと考えています。
Re: チェックボックスのテーブルボックスにインデックスを付ける方法必要なことを行う方法は次のとおりです。
n = 10; // # rows
m = 10; // # cols
a = 1::n;
// Create a list of empty text fields as checkbox labels
cb_list = {};
for (i = 1, i <= n, i++,
cb_list[i] = "";
);
cbmat = j(n, m, 0);
// Create the window
nw = new window("Test",
tb = table box(
ncb = number col box("", a),
),
okb = button box("OK",
for (i = 1, i <= m, i++,
for (k = 1, k <= n, k++,
cbmat[k, i] = cb[i] << get(k);
),
);
show(cbmat);
nw << close window;
),
);
// Create an array of checkbox columns
cb = {};
// Add the checkboxes
for (i = 1, i <= m, i++,
cb[i] = checkbox(cb_list);
cb[i] << set heading(char(i));
tb << append(cb[i]);
);

cbmat =
[ 1 0 0 0 0 0 0 0 0 0,
1 0 0 0 0 0 0 0 0 0,
1 0 1 0 0 0 0 0 0 0,
0 0 1 0 0 0 0 0 0 0,
0 0 1 0 1 0 0 0 0 0,
0 0 0 0 1 0 1 0 0 0,
0 0 0 0 0 0 1 0 0 0,
0 0 0 0 0 0 1 0 0 0,
0 0 0 0 0 0 0 0 0 0,
0 0 0 0 0 0 0 0 0 0];
Re: チェックボックスのテーブルボックスにインデックスを付ける方法参照問題が 2 件あります
TB1["CheckBoxBox(1)"] << select ;
1つ目は、
TB1["CheckBoxBox(1)"]
は、「CheckBoxBox()」というタイトルのアウトライン ボックスを探しています。つまり、「CheckBoxBox()」を引用符で囲んでいますが、そこでは CheckBoxBox() オブジェクトを探しているのではなく、「CheckBoxBox(1)」というタイトルのオブジェクトを探しています。
第二に、
<< Select
これは、CheckBoxBox() が利用できるメッセージではありません。
TB1[CheckBoxBox(1)] << get selected ;
<< get selected は選択された各チェック ボックスの文字列値を返します。チェック ボックスのすべての文字列値は " " に設定されているため、これだけで済みます。返される。 したがって、各チェック ボックスをループして値を見つける必要があります。 これが簡単な例です
For( c = 1, c <= 10, c++,
For( r = 1, r <= 10, r++,
If( T[CheckBoxBox( c )] << get( r ) == 1,
Show( c, r )
)
)
)