Bug o funzionalità??Domanda veloce per quelli di voi che potrebbero saperlo: se avete un metodo < estremamente comune per gli utenti uscire da JMP in questo modo, quindi praticamente sempre ignorando tutti gli script <
Qualcuno ha visto questo/è a conoscenza di eventuali soluzioni alternative?
Il problema principale che sto riscontrando è che faccio lanciare a JMP uno script Python in loop di eventi e allego l'eseguibile a una finestra, quindi comunico a Python tramite socket localhost.Lo script di chiusura della finestra terminerà la sessione Python con garbo e così via.Quando JMP viene chiuso nel modo sopra descritto, ciò non accade e JMP si blocca, ma le finestre di JMP sono tutte scomparse, quindi JMP rimane nell'elenco del Task Manager con il suo set completo di risorse (spesso più di 1 GB) e verrà essere ucciso solo terminando manualmente l'attività.
Poiché il risultato RunProgram deve essere legato a una finestra JMP attiva (suppongo per scopi di loop di eventi) e poiché la finestra viene chiusa forzatamente nel modo descritto sopra, la variabile RunProgram viene distrutta prima che io possa spegnerla correttamente Pitone.
È un pasticcio per il quale vorrei avere una soluzione, ma per ora non la vedo.
Automazione e scriptingfinestreRi: Bug o funzionalità??L'ho usato nel componente aggiuntivo FileSnapper per gestire problemi simili. RunProgram non è in realtà legato a una finestra, ma al contesto della finestra, che può essere clonato. Finché un clone o una finestra fanno riferimento al contesto, non verranno distrutti e gli script RunProgram continueranno a funzionare. La variabile namespace:evalcontext non viene mai utilizzata, tranne che per mantenere vivo il contesto. Anche la variabile/handle RunProgram (forse rp) viene mantenuta nello stesso spazio dei nomi perché necessita della stessa durata.
// addinLoad.jsl - this is the round-about launcher that uses a clone of a transient
// window's evalcontextbox to keep the evalcontext for a callback script alive.
// ideally, this would be, or directly include, FileSnapper.jsl, but that file
// constructs a RunProgram callback script that is somehow tied to a transient
// evalcontext that won't be available at callback time.
Local( {bb},
New Window( "File Snapper Startup", bb = Button Box( "start", Include( "$ADDIN_HOME(com.jmp.hales.FileSnapper)\Additional.jsl" ) ) );
bb << click; // run the script in this window's context
// capture the evalcontext, by cloning the box that references it into our namespace
Namespace( "FileSnapper" ):evalcontext = ((bb << parent) << parent) << clonebox;
bb << closewindow;
if(Namespace( "FileSnapper" ):evalcontext<<CLASSNAME></CLASSNAME>
Niente di tutto ciò è documentato o promesso che funzionerà in futuro, ma probabilmente lancerà un messaggio utile se qualcosa cambia.
@jschroedl - Script ^Q e OnClose
Ri: Bug o funzionalità??Grazie per questo!Adesso gli darò un'occhiata e vedrò se funziona, ma non manchi mai di regalare queste meravigliose gemme, quindi sono sicuro che funzionerà per me!Sarà fantastico per aggirare il problema della finestra!
Ri: Bug o funzionalità??@KennethAdams Prego! FileSnapper ( FileSnapper ), o la tecnica per cogliere il contesto? Entrambi i feedback sono positivi per il team di sviluppo JMP.
@giuliano - Filesnapper potrebbe aiutare a ripristinare JSL su cui sto lavorando e il context grabber è utile quando si scrivono componenti aggiuntivi che si avviano durante l'avvio (e forse altrove). Entrambe le idee potrebbero essere migliori se maggiormente integrate in JMP.
Ri: Bug o funzionalità??Grazie per l'avvertimento qui @Craige_Hales
Ho segnalato un problema per indagare sul comportamento ^Q + OnClose per vedere se possiamo migliorare le cose in futuro.
Ri: Bug o funzionalità??Tieni presente che ho riscontrato il problema solo quando ^Q provoca il popup seguente (più file non salvati) e l'utente fa clic su "Salva nessuno"

Ri: Bug o funzionalità??Ho appena finito di implementare una connessione Python persistente utilizzando il tuo trucco per eliminare la finestra: ora posso inserire lo script di terminazione della sessione Python nel file AddinUnload.jsl e funziona (JMP non si blocca senza finestre aperte, lasciando un sessione nascosta che può essere uccisa solo tramite TaskManager)
Grazie mille per il vostro aiuto!Con la nuova connessione Python persistente posso scaricare tutte le mie query di dati su Python ed eseguirle in parallelo, quindi JMP raccoglierà i file quando saranno pronti per essere utilizzati dall'utente, è fantastico!
Ri: Bug o funzionalità??Grazie, mi hai salvato la giornata. Se riscontri un problema quando gli utenti chiudono più file modificati con l'opzione "Salva nessuno". Se qualcuno ha bisogno di aiuto con la scrittura del saggio e sta cercando il miglior scrittore di saggi online, dovrebbe visitare Questo https://writinguniverse.com/essay-types/informative-essays/ pagina. Questo sito Web consente loro di confrontare diversi siti Web e le loro recensioni per fare una scelta informata per il loro progetto di saggio. In termini più semplici, questo sito Web aiuta le persone a trovare il giusto servizio di scrittura di saggi online fornendo recensioni e opzioni per i loro progetti di saggi.
Ri: Bug o funzionalità??@jschroedl c'è stato un aggiornamento con questo?Noto anche lo stesso problema quando un utente seleziona più finestre dall'Elenco finestre e le chiude tutte in una volta (di solito premendo Elimina dopo averle selezionate) e se è presente un popup su più file non salvati, Salva nessuno si chiuderà senza attivando OnClose - esattamente come sopra, tranne che non escono da JMP.
Ciò può lasciare molte risorse in sospeso poiché gli script di pulizia non vengono mai eseguiti.