JSL: valore impostato della casella di scorrimentoCiao a tutti,
Ecco il codice dallo Scripting Index per creare uno Slider Box:
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 ) )
)
)
);
Se esegui questo esempio, puoi fare clic con il pulsante destro del mouse sul dispositivo di scorrimento per impostare un valore specifico:

Supponiamo di impostarlo su 0,8. Se lo faccio, il cursore si sposta, ma lo script associato allo slider non viene eseguito. Cioè, la casella di testo sopra il dispositivo di scorrimento non si aggiorna.
Domanda 1: Perché?
Domanda 2: esiste un modo diverso per trasferire il nuovo valore nella casella di testo? Ho provato a convertire il codice per utilizzare il messaggio Imposta funzione ma questo non ha risolto il problema.
Ho osservato che se fai clic con il pulsante destro del mouse su uno slider in una piattaforma (come Custom Profiler) e imposta valore, la piattaforma sembra rispondere correttamente (slider e casella di modifica testo associata si muovono entrambi come previsto), quindi posso dire che esiste un modo per farlo in JSL. Non so proprio cosa sia.
Utilizzo 15.2.1 Pro su un Mac.
Michael
Automazione e scriptingOggetto: JSL: valore del set di caselle di scorrimentoSì, ho creato l'elemento della lista dei desideri.Casella di modifica numero e casella di scorrimento combinati e collegati
Oggetto: JSL: valore del set di caselle di scorrimentoGrazie. Conoscevo l'approccio Number Edit Box e ora sono propenso ad andare in quella direzione. Il thread collegato da @MathStatChem sembra un elemento della lista dei desideri per creare un nuovo tipo di casella di visualizzazione o per aggiungere qualche opzione allo sliderbox che facoltativamente aggiungerebbe un controllo NEB. Presumo che l'elemento della lista dei desideri sia già stato creato.
Oggetto: JSL: valore del set di caselle di scorrimentoPotresti anche usare questo approccio Casella di modifica numero e casella di scorrimento combinati e collegati
Oggetto: JSL: valore del set di caselle di scorrimentoCiò non risolve il problema di fondo identificato con lo script che non si attiva, ma spesso inserisco una casella di modifica numerica accanto a quel valore con uno script per impostare il valore del dispositivo di scorrimento.In questo modo, se qualcuno desidera impostare il valore, è improbabile che faccia clic con il pulsante destro del mouse sul dispositivo di scorrimento poiché è più semplice fare semplicemente clic sulla casella di modifica del testo.Ecco un modo per includerli entrambi, eseguendo anche alcune funzioni quando il cursore si sposta o viene digitato un nuovo valore:

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);
) )
)
)
)
);Oggetto: JSL: valore del set di caselle di scorrimentoNon vedo una soluzione alternativa perché non è possibile associare un'espressione all'azione Imposta valore. Ecco una variazione dello script originale, ma non funziona neanche perché viene richiamato quando si sposta il cursore.
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 ) )
)
)
)
)
);Oggetto: JSL: valore del set di caselle di scorrimentoGrazie per aver fornito un chiaro esempio e una domanda. Ha reso facile verificare che si tratti di un bug in JMP 15 (forse versioni precedenti). La richiamata per il dispositivo di scorrimento non viene attivata sul valore impostato.
Ho anche verificato che il problema è stato risolto nella prossima versione di JMP 16.
Potrebbe esserci una soluzione complicata che potresti codificare in JSL, ma dove vedi che funziona nelle piattaforme integrate non viene eseguita tramite JSL.