Re: Pasar argumentos directamente a un archivo script¿Hay alguna razón por la que debas hacerlo de esta manera?A menos que esté limitado por algún tipo de circunstancias extremas, su método para construir una GUI interactiva no es lo que debería hacer.
Considere el uso de clases JMP: le permiten usar métodos directamente como devoluciones de llamada en los elementos de visualización y pueden simplificar enormemente la construcción de la GUI.
Argumento de paso directo a un archivo de scriptEy,
Deseo pasar el argumento str1, un argumento de cadena a un script separado llamado: "script2run.jsl", por ejemplo, y ese script usa el argumento str1 e imprime un mensaje como:
print("This is the important string I successfully passed: " || Eval(str1)) ;
un script diferente que crea una ventana que se guardará como diario para su uso posterior activará ese script a través de botones que serían algo como esto:
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>
Hay 3 métodos aquí, pero ninguno funciona correctamente cuando se hace clic en los botones.
Automatización y secuencias de comandosRe: Pasar argumentos directamente a un archivo scriptConsidero construir tu interfaz de usuario de alguna otra manera, pero si realmente quieres seguir el camino que has sugerido, esto podría funcionar (yo recomendaría no utilizar esta)
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: Pasar argumentos directamente a un archivo scriptSi puede dar ejemplos de mejores formas, estaré más que feliz de verlo. Mis únicas limitaciones son que un script genérico obtendrá una variable diferente según el botón en el que se haga clic en la interfaz de usuario.Re: Pasar argumentos directamente a un archivo scriptEn casos simples, lo más probable es que puedas usar una función y tal vez el nombre del botón como argumento. ¿Puedes modificar tu script genérico? ¿Podría, por ejemplo, incluirse al principio de su script y luego llamar a una función desde ese script genérico dentro de cada uno de los botones?
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);
);