我在這裡發現了一些有趣的程式碼Supercharge Your User Interfaces in 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 和當前 datatable() 並僅使用 :name、:number、:picture 並希望表腳本知道始終引用正確的表(當您有像這樣的簡單表格腳本)。