Re: 引数をスクリプトファイルに直接渡すこのようにしなければならない理由はありますか?何らかの極端な状況に制約されない限り、対話型 GUI を構築する方法は、行うべきことではありません。
JMP クラスの使用を検討してください。JMP クラスを使用すると、表示要素のコールバックとしてメソッドを直接使用できるようになり、GUI の構築が大幅に簡素化されます。
スクリプトファイルに引数を直接渡すおい、
たとえば、「script2run.jsl」という名前の別のスクリプトに文字列引数である引数 str1 を渡したいのですが、そのスクリプトは str1 引数を使用し、次のようなメッセージを出力します。
print("This is the important string I successfully passed: " || Eval(str1)) ;
後で使用するためにジャーナルとして保存されるウィンドウを作成する別のスクリプトは、次のようなボタンを通じてそのスクリプトをトリガーします。
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>
ここには 3 つの方法がありますが、ボタンがクリックされたときにどれも正しく機能しません
自動化とスクリプト作成Re: 引数をスクリプトファイルに直接渡す他の方法で UI を構築することを検討していますが、本当にあなたが提案した方法で行きたい場合は、これでうまくいくかもしれません(私ならそうします)ないこれを使って)
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: 引数をスクリプトファイルに直接渡すより良い方法の例を挙げていただければ、喜んで拝見させていただきます。唯一の制約は、1 つの汎用スクリプトが UI でクリックされたボタンに応じて異なる変数を取得することです。Re: 引数をスクリプトファイルに直接渡す単純なケースでは、引数として関数とボタン名を使用できる可能性が高くなります。 汎用スクリプトを変更できますか? たとえば、これをスクリプトの先頭に含めて、各ボタン内でその汎用スクリプトから関数を呼び出すことはできますか?
スクリプト1.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);
);