Ottieni modalità batch / interattivaMi chiedo se c'è un modo per eliminare nativamente le finestre modali. Batch interattivo non sembra.
Names default to here(1);
batch interactive(1);
new window("Test", <<MODAL></MODAL>
Quindi mi chiedo se c'è un modo per ottenere l'attuale modalità interattiva batch in modo da poter fare qualcosa del genere.
Names default to here(1);
batch interactive(1);
if(batch interactive(), // or some other internal variable
print("YAY")
, // else
new window("Test", <<MODAL></MODAL>
Ovviamente posso rendere la mia variabile batch ma mi chiedo se c'è qualcosa di incorporato.
Re: Ottieni la modalità batch/interattivaGrazie per le informazioni.
Con l'aiuto del supporto JMP 
batch interactive(boolean) returns the previous setting.
Names default to here(1);
//works for both options
//batch interactive(0);
//batch interactive(1);
last setting = batch interactive(1); // return value is last setting
batch interactive(last setting); // reset it in case we set it erroneously
if(last setting,
print("YAY")
, // else
new window("Test", <<MODAL> </MODAL>
Re: Ottieni la modalità batch/interattivaIl mio inizia sempre con 1, il che mi fa pensare che JMP sia in batch. Cosa che sicuramente non è. All'avvio il primo reso ti dà 0?
Re: Ottieni la modalità batch/interattivabuon punto...
Sembra che quando eseguiamo uno script, JMP si avvia automaticamente con " Batch Interactive " impostato su 1 per impostazione predefinita
- in modo tale che non venga visualizzato alcun messaggio di avviso che interferisca con lo script.
Cosa che sicuramente non è.
Forse ci sono diversi tipi di "avvertimenti"? - e alcuni di loro ignorano questa impostazione predefinita "Batch Interactive" ~ 1 e quindi necessitano di un batch interattivo(1) esplicito inviato tramite JSL per "zittire"?
Come Eval(arg) vs. Eval(Eval Expr( .... Expr(arg) ...):
Una parte delle piattaforme e delle funzioni JMP necessita semplicemente di Eval() attorno a un argomento per risolvere i problemi di riferimento alle variabili.
D'altra parte, l'approccio Eval(arg) fallirà e l'utente dovrà ricorrere a Eval(Eval Expr( .... Expr(arg) ... ).
... ed è il divertimento quotidiano degli scripter JSL e del supporto JMP scoprire quale funzione appartiene a quale gruppo.
Re: Ottieni la modalità batch/interattivaesempi per i diversi comportamenti di batch interattivo - e le diverse modalità "predefinite":
Names Default To Here( 1 );
testMarkup = Function( {},
text = Text Box("Bad XML <");
text << markup;
);
// Run the next four lines individually
testMarkup(); // no special setting: default
batch interactive(1);testMarkup(); // batch interactive is turned "on" so we see an error
batch interactive(0);testMarkup(); // batch interactive is turned off so we can show an error
new window("test",buttonbox("Test", testMarkup())); // running jsl in response to a click is not batch interactive mode
new window("test",buttonbox("Test", batch interactive(1);testMarkup())); // set batch interactive to 1 so the error message goes to the log and there is no modal dialog
// the findings:
// default -> no dialog
// 1 -> no dialog
// 0 -> dialog
// Run the next 3 lines individually to check if formula errors behave the same as above
:col1 << remove formula(); // no special setting: default
batch interactive(1);:col1 << remove formula(); // batch interactive is turned "on"" so we see an error
batch interactive(0);:col1 << remove formula(); // batch interactive is turned off so we can show an error
// the findings:
// default -> dialog (!!!!!)
// 1 -> no dialog
// 0 -> dialogDal supporto JMP, ho ottenuto le informazioni:
La funzione Batch Interactive() non è documentata. Il comportamento può differire in situazioni diverse e potrebbe cambiare in futuro. In effetti, può essere considerato sperimentale e non supportato.