JSL: valor de conjunto de cuadro deslizanteHola a todos,
Aquí está el código del índice de secuencias de comandos para crear un cuadro deslizante:
Names Default To Here( 1 );
sliderValue = .6;
New Window( "Example",
Panel Box( "Slider Box",
tb = Text Box( "Value: " || Char( sliderValue ) ),
sb = Slider Box(
0,
1,
sliderValue,
tb << Set Text( "Value: " || Char( sliderValue ) )
)
)
);
Si ejecuta este ejemplo, puede hacer clic con el botón derecho en el control deslizante para establecer un valor específico:

Supongamos que configuro esto en 0.8. Si lo hago, el control deslizante se mueve, pero la secuencia de comandos asociada con el control deslizante no se ejecuta. Es decir, el cuadro de texto sobre el control deslizante no se actualiza.
Pregunta 1: ¿Por qué?
Pregunta 2: ¿Hay alguna forma diferente de transferir el nuevo valor al cuadro de texto? Traté de convertir el código para usar el mensaje Establecer función, pero esto no lo resolvió.
He observado que si hace clic con el botón derecho en un control deslizante en una plataforma (como Custom Profiler) y establece el valor, la plataforma parece responder correctamente (el control deslizante y el cuadro de edición de texto asociado se mueven como se esperaba), por lo que puedo decir que hay alguna manera para hacer esto en JSL. Simplemente no sé qué es eso.
Estoy ejecutando 15.2.1 Pro en una Mac.
Miguel
secuencias de comandosRe: JSL: valor de conjunto de cuadro deslizanteSí, creé el elemento de la lista de deseos.Cuadro deslizante y cuadro de edición de números combinados y conectados
Re: JSL: valor de conjunto de cuadro deslizanteGracias. Conocía el enfoque del cuadro de edición de números y ahora me inclino por ese camino. El hilo enlazado de @MathStatChem suena como un elemento de la lista de deseos para crear un nuevo tipo de cuadro de visualización o para agregar alguna opción al cuadro deslizante que opcionalmente agregaría un control NEB. Supongo que ese elemento de la lista de deseos ya se ha creado.
Re: JSL: valor de conjunto de cuadro deslizanteTambién podría utilizar este enfoque Cuadro deslizante y cuadro de edición de números combinados y conectados
Re: JSL: valor de conjunto de cuadro deslizanteEsto no aborda el problema subyacente que identificó con la secuencia de comandos que no se activa, pero a menudo coloco un cuadro de edición de números junto a ese valor con una secuencia de comandos para establecer el valor del control deslizante.De esa manera, si alguien quiere establecer el valor, es poco probable que haga clic derecho en el control deslizante, ya que es más fácil hacer clic en el cuadro de edición de texto.Aquí hay una forma de incluir ambos, mientras también se ejecuta alguna función cuando el control deslizante se mueve o se ingresa un nuevo valor:

Names Default To Here( 1 );
sliderValue = .6;
//Function that is called when either slider is moved or new value is typed in
dothisonchange = Function({val}, tb << Set Text( "Value: " || Char( val) ) );
New Window( "Example",
Panel Box( "Slider Box",
tb = Text Box( "Value: " || Char( sliderValue ) ),
h list box(
sb = Slider Box(
0,
1,
sliderValue,
//Set the number edit box and call the other function
neb << Set( sliderValue );
dothisonchange(sliderValue);
),
neb = Number Edit Box(
sliderValue,
3,
<< Set function( Function( {this},
sliderValue = this << Get;
//Set the slider and call the other function
sb << Set( sliderValue );
dothisonchange(sliderValue);
) )
)
)
)
);Re: JSL: valor de conjunto de cuadro deslizanteNo veo una solución porque no hay forma de asociar una expresión con la acción Establecer valor. Aquí hay una variación del script original, pero tampoco funciona porque se llama cuando se mueve el control deslizante.
Names Default To Here( 1 );
sliderValue = .6;
New Window( "Example",
Panel Box( "Slider Box",
tb = Text Box( "Value: " || Char( sliderValue ) ),
Slider Box( 0, 1, sliderValue,
<< Set Function(
Function( { me },
tb << Set Text( "Value: " || Char( me << Get ) )
)
)
)
)
);Re: JSL: valor de conjunto de cuadro deslizanteGracias por proporcionar un ejemplo claro y una pregunta. Facilitó la verificación de que se trata de un error en JMP 15 (quizás en versiones anteriores). La devolución de llamada para el control deslizante no se activa en el valor establecido.
También verifiqué que lo hemos solucionado en la próxima versión de JMP 16.
Puede haber una solución complicada que podría codificar en JSL, pero donde lo ve funcionando en las plataformas integradas, no se está haciendo a través de JSL.