Betreff: Direkte Übergabe eines Arguments an eine SkriptdateiGibt es einen Grund, warum Sie es so machen müssen?Sofern Sie nicht durch extreme Umstände eingeschränkt werden, ist Ihre Methode zum Erstellen einer interaktiven GUI nicht das, was Sie tun sollten.
Erwägen Sie die Verwendung von JMP-Klassen – diese ermöglichen Ihnen die direkte Verwendung von Methoden als Rückrufe für Anzeigeelemente und können die GUI-Konstruktion erheblich vereinfachen.
Direkte Übergabe eines Arguments an eine SkriptdateiHey,
Ich möchte das Argument str1, ein String-Argument, an ein separates Skript mit dem Namen „script2run.jsl“ übergeben, zum Beispiel, und dass das Skript das Argument str1 verwendet und eine Nachricht wie folgt ausgibt:
print("This is the important string I successfully passed: " || Eval(str1)) ;
Ein anderes Skript, das ein Fenster erstellt, das zur späteren Verwendung als Journal gespeichert wird, löst dieses Skript über Schaltflächen aus, die etwa so aussehen:
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>
Hier gibt es drei Methoden, aber keine funktioniert richtig, wenn auf Schaltflächen geklickt wird
Automatisierung und SkripterstellungBetreff: Direkte Übergabe eines Arguments an eine SkriptdateiIch denke darüber nach, Ihre Benutzeroberfläche auf andere Weise zu erstellen, aber wenn Sie wirklich so vorgehen möchten, wie Sie es vorgeschlagen haben, könnte dies funktionieren (ich würde es tun). nicht benutze das)
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>Betreff: Direkte Übergabe eines Arguments an eine SkriptdateiWenn Sie Beispiele für bessere Möglichkeiten nennen können, freue ich mich sehr darüber. Meine einzigen Einschränkungen bestehen darin, dass ein generisches Skript abhängig von der in der Benutzeroberfläche angeklickten Schaltfläche unterschiedliche Variablen erhält.Betreff: Direkte Übergabe eines Arguments an eine SkriptdateiIn einfachen Fällen könnten Sie höchstwahrscheinlich eine Funktion und möglicherweise einen Schaltflächennamen als Argument verwenden. Können Sie Ihr generisches Skript ändern? Könnte es beispielsweise am Anfang Ihres Skripts eingefügt werden und Sie dann in jeder der Schaltflächen eine Funktion aus diesem generischen Skript aufrufen?
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);
);