Re : Passer directement un argument à un fichier scriptY a-t-il une raison pour laquelle vous devez procéder de cette façon ?À moins que vous ne soyez contraint par des circonstances extrêmes, votre méthode de construction d'une interface graphique interactive n'est pas ce que vous devriez faire.
Pensez à utiliser les classes JMP : elles vous permettent d'utiliser des méthodes directement comme rappels sur les éléments d'affichage et peuvent grandement simplifier la construction de l'interface graphique.
Passage direct d'un argument à un fichier de scriptHé,
je souhaite passer l'argument str1, un argument de chaîne à un script séparé nommé : "script2run.jsl" par exemple, et ce script utilise l'argument str1 et imprimer un message tel que :
print("This is the important string I successfully passed: " || Eval(str1)) ;
un script différent qui crée une fenêtre qui sera enregistrée en tant que journal pour une utilisation ultérieure déclenchera ce script via des boutons qui ressembleraient à ceci :
vars4script = {"nine", "one", "two", "eight", "eleven"};
win_click = New Window( "journal window",
Spacer Box( size( 100, 10 ) ),
Header = Text Box( " journal window buttons", <<FONT color=""></FONT>
il y a 3 méthodes ici mais aucune ne fonctionne correctement lorsque l'on clique sur les boutons
Automatisation et scriptsRe : Passer directement un argument à un fichier scriptJ'envisage de créer votre interface utilisateur d'une autre manière, mais si vous voulez vraiment suivre la voie que vous avez suggérée, cela pourrait fonctionner (je le ferais). pas utilisez ceci)
Names Default To Here(1);
vars4script = {"nine", "one", "two", "eight", "eleven"};
win_click = New Window("journal window",
Spacer Box(size(100, 10)),
Header = Text Box(" journal window buttons", <<FONT color="">= 1, i--,
Eval(EvalExpr(
buttons_area1 << Append(Button Box(vars4script[i],
str1 = Expr(vars4script[i]);
Expr(Parse(Load Text File("script2.jsl")));
));
));
);
</FONT>Re : Passer directement un argument à un fichier scriptSi vous pouvez donner des exemples de meilleures façons, je serai plus qu'heureux de les voir. mes seules contraintes sont qu'un script générique obtiendra une variable différente en fonction du bouton cliqué dans l'interface utilisateur.Re : Passer directement un argument à un fichier scriptDans les cas simples, vous pouvez très probablement utiliser une fonction et peut-être le nom du bouton comme argument. Pouvez-vous modifier votre script générique ? Pourrait-il par exemple être inclus au début de votre script, puis appeler une fonction de ce script générique dans chacun des boutons ?
script1.jsl
Names Default To Here(1);
Include("script2.jsl");
vars4script = {"nine", "one", "two", "eight", "eleven"};
win_click = New Window("journal window",
Spacer Box(size(100, 10)),
Header = Text Box(" journal window buttons", <<FONT color=""></FONT>
script2.jsl
Names Default To Here(1);
my_func = function({str}, {Default Local},
Show(str);
);