Necesita una variable local para cerrar la ventanaEstoy tratando de generar varias ventanas y hacer que el botón de cierre cierre cada una por separado.Sin embargo, no está funcionando como esperaba.Intente ejecutar código 2x; el botón de cierre funciona para una ventana pero no para la otra.
::a = "The quick fox jumped over the brown log";
::b = "Hello World I want to get off now";
names default to here(1);
nw = new window("Test",
text box(::a),
text box(::b),
button box("Close", nw << close window)
);


GráficosScriptingRe: Necesito variable local para cerrar ventanaAsí es como lo manejaría
::a = "The quick fox jumped over the brown log";
::b = "Hello World I want to get off now";
Names Default To Here( 1 );
Eval(
Substitute(
Expr(
__nw__ = New Window( "Test",
Text Box( ::a ),
Text Box( ::b ),
Button Box( "Close", __nw__ << close window )
)
),
Expr( __nw__ ),
Parse( "nw" || Char( Random Integer( 1, 999999999 ) ) )
)
);Re: Necesito variable local para cerrar ventanaGracias Jim que funciona.Pero dos preguntas:
1. ¿Por qué funciona el tuyo y no el mío?
2. Parece que está asignando __nw__ a un entero aleatorio, pero ya es "identificador de ventana".¿No anula eso su valor de identificador de ventana?
Como pregunta adicional, ¿por qué todos los guiones bajos dobles?El código funciona bien sin ellos.
Re: Necesito variable local para cerrar ventanaSu código falla, porque la segunda vez que ejecuta el script, la variable "nw" cambia para apuntar a la última ventana.Básicamente, el problema es que el espacio de nombres "Aquí" está asociado con la ventana del script, no cada una de las instancias que se ejecutan desde la ventana del script.Mi código simplemente crea una nueva variable cada vez que se ejecuta el código.
Con respecto a los subrayados dobles, es solo un estándar que utilizo.Encuentro que ayuda a leer y comprender cómo funciona el código.