J'ai trouvé du code intéressant ici Superchargez vos interfaces utilisateur en JSL ( US 2018 113 ) et j'essaie de l'implémenter avec des modifications mineures sous forme de script de table (table de démonstration ci-jointe).
Les touches finales que je souhaite appliquer sont les suivantes :
- Définissez la taille de l'image dans le script (idéalement, en préservant le rapport hauteur/largeur d'origine).
J'ai essayé; par exemple « one_pic << Set Size({200,200}) » et « one_pic << scale (.2) » ; à différentes positions dans la fonction if() à partir de la ligne 43, et j'ai également essayé ces messages à d'autres endroits. Sans succès. - N'étant pas confiant dans l'utilisation des espaces de noms et ni très expérimenté en matière de variables et de références, le script utilise 'dt = current data table()' pour faire référence à la table dans laquelle le script est stocké.
Est-ce la bonne approche informatique ou est-ce ce que ferait un scripteur inexpérimenté ?
Merci pour ton aide.
@jthi toujours utile. Merci!
Je ne sais pas exactement pourquoi l'utilisation d'une variable supplémentaire est requise ici (peut-être qu'elle essaie autrement de redimensionner l'image dans le tableau et ne peut pas le faire)
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);
);
)
);
Je n'utilise généralement pas de scripts de table, mais je pense que dans des cas comme celui-ci, l'utilisation de Current Data Table() devrait convenir. Dans certains cas, cela peut faire référence à une mauvaise table (comme si vous changez immédiatement de table après avoir exécuté le script de table), mais ce n'est probablement pas un problème ici. Une autre option pourrait être de simplement supprimer dt et current datatable() et d'utiliser simplement :name, :number, :picture et espérons que le script de table sait toujours faire référence à la bonne table (cela pourrait fonctionner mieux que d'utiliser current data table() lorsque vous avez script de table simple comme celui-ci).