TableBox の行に色を付けるテキストだけでなくボタンもあるテーブルボックスがあり、1色以上の色を付けたいです
col1 = {1, 2, 3};
col2 = {1, 2, 3};
col3 = {1, 2, 3};
myPlatform = New Window( "test",
tb = Table Box(
Number Col Box( "a", col1 ),
Number Col Box( "b", col2 ),
Number Col Box( "c", col3 ),
bb = Col Box( "Open Graph" )
)
);
bblist = {};
For( i = 1, i <= 3, i++,
bb_expr = Eval Insert( "\[bblist[i] = buttonbox("ok")]\" );
Eval( Parse( bb_expr ) );
bb << append( bblist[i] );
);
tb << Set Selectable Rows(1);
dt = tb << Make into Data Table( invisible );
rs = dt << Get Rows Where( :a > 1 );
tb << Set Selected Rows( rs );
tb << Set Selected Row Color( "red" );
rs = dt << Get Rows Where( :a == 1 );
tb << Set Selected Rows( rs );
tb << Set Selected Row Color( "green" );問題は、最後の 2 行を削除すると、最後の 2 行が赤で表示されることですが、最後の 2 行を実行すると、赤が削除され、上の行が赤のままではなく緑で表示されます。良い
最後の 2 行を実行する前に:

最後の 2 行を実行した後

テーブルボックスを複数の色で着色する方法はありますか? (赤と緑の両方の色が欲しいです)
ジャーナルも操作してみましたが、ボタンを追加する方法がわかりません。
ありがとう!
マスカスタマイゼーションRe: TableBox の行に色を付ける開いたウィンドウのボタンの 1 つで [スクリプトの設定] を使用すると、問題の内容を簡単に確認できます。

i は数値でなければならない場合の引数です。 それを修正するには、Eval(Parse()) 方法を使用できます。
For( i = 1, i <= 3, i++,
Insert Into(bblist, Eval(Parse("buttonbox(\!"test"||char(i)||"\!",newFunc("||char(i)||"))")));
);または Eval(Eval Expr()):
For( i = 1, i <= 3, i++,
Eval(EvalExpr(Insert Into(bblist, buttonbox("test"||char(expr(i)),newFunc(expr(i))))));
);Set Script を次のようにしたいとします (少なくともこの場合)。

これを行うための「最善の」方法は、アプリケーションに大きく依存する可能性が高くなります。
Re: TableBox の行に色を付けるありがとう!これはとても役に立ちます
最後に質問が 1 つあります。
このコードを使用して、関数内でボタンごとに異なる値を作成しようとしています。
したがって、この例では、ボタン 1 をクリックすると 1 が印刷され、2 をクリックすると 2 が印刷されます。
しかし、何らかの理由で値が「固定」されず、クリックしたどのボタンにも 4 と表示されます(4 はループ終了後の i の番号です)。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("a",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 2, 3])
),
New Column("b",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([2, 2, 3])
),
New Column("c",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([2, 2, 3])
),
invisible
);
newFunc = function({i},
print(i);
);
dt << Select Where(:a > 1);
For(i = 1, i <= N Cols(dt), i++,
Column(dt, i) << Color Cells("Red");
);
dt << Clear Select;
dt << Select Where(:a == 1);
For(i = 1, i <= N Cols(dt), i++,
Column(dt, i) << Color Cells("Green");
);
dt << Clear Select;
rep = dt << get as report;
Close(dt, no save);
nw = New Window("Example",
hlb = h list box()
);
bblist = Expr(col box("Open Graph"));
For( i = 1, i <= 3, i++,
Insert Into(bblist, buttonbox("test"||char(i),newFunc(i)));
);
rep << append(bblist);
hlb << append(rep);
tb = (hlb << XPath("//TableBox"))[1];
tb << Set Scrollable(5,5);これを修正する方法はありますか?
Re: TableBox の行に色を付ける何が問題なのか完全にはわかりません(カンマ区切りの表示ボックスが必要なため、Col Box() がリストを引数として受け取らない可能性があります)。 しかし、これはそれを行うための 1 つの方法かもしれません:
bblist = Expr(col box("Open Graph"));
For( i = 1, i <= 3, i++,
Insert Into(bblist, buttonbox("test"||char(i)));
);
rep << append(bblist);
hlb << append(rep);Re: TableBox の行に色を付けるありがとう!これはとても役に立ちます!
しかし、ボタンを動的に作成したい場合はどうすればよいでしょうか
bblist = {};
For( i = 1, i <= 3, i++,
bb_expr = Eval Insert( "\[bblist[i] = buttonbox("test")]\" );
Eval( Parse( bb_expr ) );
bb << append( bblist[i] );
);やろうとすると
rep << append(Col Box("Open Graph", bb));それは機能しません
なにか提案を?
Re: TableBox の行に色を付ける似たようなことをやりたかったスクリプトが 1 つありました (理由もなく私の好みには少し複雑すぎたので、最終的にはそれを諦めて、アプリケーションに別のアプローチを採用しました)。
これを少し変更すると、基本的なウィンドウが表示されます。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("a",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 2, 3])
),
New Column("b",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([2, 2, 3])
),
New Column("c",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([2, 2, 3])
),
invisible
);
dt << Select Where(:a > 1);
For(i = 1, i <= N Cols(dt), i++,
Column(dt, i) << Color Cells("Red");
);
dt << Clear Select;
dt << Select Where(:a == 1);
For(i = 1, i <= N Cols(dt), i++,
Column(dt, i) << Color Cells("Green");
);
dt << Clear Select;
rep = dt << get as report;
Close(dt, no save);
nw = New Window("Example",
hlb = h list box()
);
rep << append(Col Box("Open Graph", Button Box("ok"),Button Box("ok"),Button Box("ok")));
hlb << append(rep);
tb = (hlb << XPath("//TableBox"))[1];
tb << Set Scrollable(5,5);アイデアは、データテーブルに色を付け、データテーブルをレポートとして取得し、そのレポートにボタンを追加し、最後にそれを新しいウィンドウに追加する(そしてサイズを変更する)ことでした。
Re: TableBox の行に色を付けるテーブルボックスではできなくても、別の方法はありますか?問題は、何らかの方法でボタンも追加する必要があることです