我在这里用 JSL 增强您的用户界面(US 2018 113)发现了一些有趣的代码,并尝试通过少许修改将其实现为表格脚本(附加的演示表)。
我想要做的最后修改是:
- 在脚本中设置图片大小(理想情况下,保留原始的纵横比。
我尝试过;例如 'one_pic << Set Size({200,200})' 和 'one_pic << scale (.2)';在 if() 函数内从第 43 行开始的不同位置,我也在其他地方尝试过这些消息。没有成功。 - 由于对使用命名空间没有信心,并且对变量和引用也没有丰富的经验,该脚本使用“dt = current data table()”来引用存储脚本的表。
这是正确的计算方法吗?还是这是缺乏经验的脚本编写者会做的事情?
谢谢你的帮助。
不完全确定为什么这里需要使用一个额外的变量(也许它会尝试调整表格中的图像大小但无法做到)
Names Default To Here(1);
dt = Current Data Table();
name_list = dt:name << get values;
num_list = dt:number << get values;
pic_list = dt:picture << get values;
nw = New Window("row",
V List Box(
tb = Text Box("some row"),
H List Box(
Panel Box("names & numbers",
V Scroll Box(
tbox = Table Box(String Col Box("Name", name_list), String Col Box("Number", num_list), )
)
),
Panel Box("pics",
pb = picture box()
)
)
)
);
tb << set font style("Italic") << font color("Dark Blue") << set font("Stencil", 16) << set width(450);
tbox << set underline headings(1) << set heading column borders(1) << set column borders(1) <<
set row borders(1) << set shade alternate rows(1) << set selectable rows(1);
tbox << set row change function(Function({this},
row_list = this << get selected rows;
If(N Rows(row_list) > 0,
k = row_list[1];
one_pic = pic_list[k];
pic = one_pic;
pic << Scale(0.2);
pb << set image(pic);
);
)
);
我一般不使用表格脚本,但我认为在这种情况下使用 Current Data Table() 应该没问题。在某些情况下,它可能会引用错误的表格(例如,如果您在运行表格脚本后立即更改表格),但很可能这不是问题。其他选项可能是只删除 dt 和 current datatable(),只使用 :name、:number、:picture,并希望表格脚本知道始终引用正确的表格(当您有像这样的简单表格脚本时,这可能比使用 current data table() 效果更好)。