顏色錶框行我有一個表格框,其中有文本,也有按鈕,我想給它上色超過 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 行,它會刪除頂行的紅色和綠色,而不是將紅色保留為出色地
在運行最後兩行之前:

運行最後兩行後

有沒有辦法為表格框著色超過一種顏色? (我希望它有紅色和綠色)
我也嘗試過使用日記,但後來我不確定如何添加按鈕。
謝謝!
大規模定制回复:表格框行的顏色您可以通過在打開的窗口中的按鈕之一上使用“設置腳本”來輕鬆檢查問題所在:

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))))));
);您希望設置腳本看起來像這樣(至少在本例中):

做到這一點的“最佳”方法很可能高度依賴於應用程序。
回复:表格框行的顏色謝謝!這有很大幫助
我還有最後一個問題:
使用此代碼,我嘗試在函數中為每個按鈕創建不同的值。
所以在這個例子中,如果我點擊按鈕 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);有沒有辦法來解決這個問題?
回复:表格框行的顏色不完全確定那裡出了什麼問題(可能是 Col Box() 不會將列表作為參數,因為它似乎需要逗號分隔的顯示框)。 但這可能是一種方法:
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);回复:表格框行的顏色謝謝!這很有幫助!
但如果我想動態創建按鈕怎麼辦
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));它不起作用
有什麼建議嗎?
回复:表格框行的顏色我有一個腳本,我想做一些類似的事情(最後我放棄了它,並為應用程序採用了不同的方法,因為它無緣無故地對我的口味來說有點太複雜了)。
我對其進行了一些修改,這將為您提供基本窗口:
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);想法是給數據表著色,將數據表作為報告獲取,向該報告添加按鈕,最後將其附加到新窗口(並調整大小)。
回复:表格框行的顏色即使你不能用表格框來做到這一點,還有其他方法嗎?問題是我還需要以某種方式向其添加按鈕