Come chiudere l'app usando JSL?Tutto,
Non riesco a trovare un modo per fare quanto segue:
Diciamo che ho un'app sotto forma di componente aggiuntivo.
Affinché funzioni correttamente, sono necessarie alcune condizioni soddisfatte. Quando non lo sono, voglio creare una finestra modale con la descrizione di ciò che è necessario per eseguire l'app e premendo il pulsante "OK" chiudere l'app (non JMP però).
Come posso chiudere un'app in esecuzione all'interno di questa app utilizzando JSL (la inserirò come script in Butotn Box con "OK").
Grazie,
M.
Re: Come chiudere l'app usando JSL?Questo è ciò di cui avevo bisogno. Poiché 'thisModuleInstance' è riservato, sarebbe utile aggiungere della documentazione quando un utente crea una nuova applicazione, ad es.

Re: Come chiudere l'app usando JSL?Una cosa da tenere a mente è che ogni finestra creata da un'applicazione JMP è associata a un'istanza del modulo.Nello script per il modulo, puoi fare qualcosa del tipo:
(thisModuleInstance << Get Box) << Chiudi finestra;
Potresti anche usare una qualsiasi delle caselle che definiscono il contenuto del modulo.Vedrai che questo approccio viene utilizzato nell'applicazione JMP di esempio "Launcher With Report".In questo esempio, in un modulo viene creata una finestra di avvio per raccogliere l'input e su "OK" la finestra di avvio viene chiusa e viene creata la finestra del report.
Re: Come chiudere l'app usando JSL?Grazie! Questo risolve il problema dei controlli pre-lancio.
Tuttavia, sarebbe comunque utile sapere come chiudere una finestra dell'app.
Chiuderlo in base al titolo come è stato suggerito in precedenza non sembra essere affidabile poiché il titolo può cambiare (e cambio il titolo nei miei script per varie finestre).
C'è un modo per ottenere un handle nella finestra principale dell'app?
Grazie,
M
Re: Come chiudere l'app usando JSL?L'applicazione JMP ha uno script integrato che sarebbe un buon posto per controlli come questi.Il flusso di lavoro dell'applicazione è:
Esegui lo script dell'applicazione;
per ogni modulo (
se (il modulo si avvia automaticamente,
modulo<
);
);
Un modo per aggiungere controlli pre-lancio per le tue applicazioni sarebbe:
1. Disattiva l'avvio automatico per tutti i moduli (seleziona nel pannello degli oggetti, disattiva l'avvio automatico nelle proprietà)
2. Nella scheda script per l'applicazione:
okToLaunch = /* inserisci condizioni */
se (okToLaunch,
Modulo1 << Crea istanza,
/* else mostra la finestra di dialogo di errore ed esce */
);
Re: Come chiudere l'app usando JSL?Prova questo:
window(" - Application")<< close window;
Puoi specificare il nome della finestra, o il numero della finestra, oppure se hai creato la finestra e hai un puntatore alla finestra, puoi semplicemente passare il << chiudi finestra; messaggio ad esso.
Puoi usare questo piccolo pezzo di codice per scoprire tutti i nomi delle finestre
i = 1;
While( Window( i ) << get window title != {},
Show( Window( i ) << get window title );
i++;
);Re: Come chiudere l'app usando JSL?Ok, ho provato quanto segue:
Creata un'app vuota, nome Module1 predefinito. Creato un pulsante con il seguente codice:
Button1Press=Function({this},
// This function is called when the button is pressed
name = this << Get Button Name;
show("Trying to close App");
thisModuleInstance << Close Window;
thisApplication << Close Window;
Module1 << Close Window;
);Nessuna delle tre opzioni ha funzionato.
Come ottengo allora il nome della finestra dell'applicazione?
Grazie,
M.
Re: Come chiudere l'app usando JSL?In genere chiudo semplicemente le finestre associate all'applicazione
obj << close window;