JSL : valeur du coffret de curseurSalut tout le monde,
Voici le code du Scripting Index pour créer une 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 ) )
)
)
);
Si vous exécutez cet exemple, vous pouvez cliquer avec le bouton droit sur le curseur pour définir une valeur spécifique :

Supposons que je règle cela sur 0,8. Si je le fais, le curseur bouge, mais le script associé au curseur ne s'exécute pas. Autrement dit, la zone de texte au-dessus du curseur n'est pas mise à jour.
Question 1 : Pourquoi ?
Question 2 : Existe-t-il une autre manière de transférer la nouvelle valeur vers la zone de texte ? J'ai essayé de convertir le code pour utiliser le message Set Function mais cela ne l'a pas résolu.
J'ai observé que si vous cliquez avec le bouton droit sur un curseur dans une plate-forme (telle que le profileur personnalisé) et définissez la valeur, la plate-forme semble répondre correctement (le curseur et la zone d'édition de texte associée se déplacent tous deux comme prévu), je peux donc dire qu'il existe un moyen pour le faire en JSL. Je ne sais tout simplement pas ce que c'est.
J'utilise 15.2.1 Pro sur un Mac.
Michael
Automatisation et scriptsRe: JSL : valeur du coffret de curseurOui, j'ai créé l'élément de liste de souhaits.Zone d'édition de numéros combinés et connectés et zone de curseur
Re: JSL : valeur du coffret de curseurMerci. Je connaissais l'approche Number Edit Box et j'ai maintenant tendance à suivre cette voie. Le fil de discussion lié de @MathStatChem cela ressemble à un élément de liste de souhaits pour créer un nouveau type de boîte d'affichage ou pour ajouter une option à la sliderbox qui ajouterait éventuellement un contrôle NEB. Je suppose que cet élément de liste de souhaits a déjà été créé.
Re: JSL : valeur du coffret de curseurVous pouvez également utiliser cette approche Zone d'édition de numéros combinés et connectés et zone de curseur
Re: JSL : valeur du coffret de curseurCela ne résout pas le problème sous-jacent que vous avez identifié avec le script qui ne se déclenche pas, mais je place souvent une zone d'édition numérique à côté de cette valeur avec un script pour définir la valeur du curseur.De cette façon, si quelqu'un souhaite définir la valeur, il est peu probable qu'il fasse un clic droit sur le curseur car il est plus facile de simplement cliquer sur la zone d'édition de texte.Voici une façon d'inclure les deux, tout en exécutant également certaines fonctions lorsque le curseur se déplace ou qu'une nouvelle valeur est saisie :

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 : valeur du coffret de curseurJe ne vois pas de solution de contournement car il n'existe aucun moyen d'associer une expression à l'action Définir la valeur. Voici une variante du script original, mais cela ne fonctionne pas non plus car il est appelé lorsque le curseur est déplacé.
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 : valeur du coffret de curseurMerci d'avoir fourni un exemple clair et une question. Cela a permis de vérifier facilement qu'il s'agissait d'un bug dans JMP 15 (peut-être des versions antérieures). Le rappel du curseur n'est pas déclenché sur la valeur définie.
J'ai également vérifié que nous l'avions corrigé dans la prochaine version de JMP 16.
Il existe peut-être une solution de contournement délicate que vous pouvez coder en JSL, mais là où vous la voyez fonctionner sur les plates-formes intégrées, cela ne se fait pas via JSL.