Finestre nascosteSalve, ho un problema con l'apertura delle finestre JMP dietro altre applicazioni (non JMP) quando eseguo uno dei miei componenti aggiuntivi. La seguente sequenza di passaggi illustra il problema così come si verifica sul mio laptop:
- Apro JMP e apro anche un set di dati JMP.
- Ora apro un'altra applicazione (ad esempio PowerPoint) e la ingrandisco (in modo che né la finestra Home di JMP né la finestra contenente il set di dati siano immediatamente visibili).
- Faccio qualcosa in PowerPoint (ad esempio modifico una diapositiva o altro) ma poi voglio tornare alla mia analisi in JMP. Quindi, lasciando PowerPoint aperto e ingrandito, passo il mouse sull'icona JMP nella parte inferiore dello schermo e seleziono la finestra contenente il set di dati che voglio analizzare. Questa finestra ora si trova sopra PowerPoint (anche se la finestra principale di JMP è ancora nascosta dietro Presa della corrente).
- Ora desidero eseguire il mio componente aggiuntivo, quindi lo seleziono dal menu nella parte superiore della finestra del set di dati. La prima cosa che fa il mio componente aggiuntivo è presentare una finestra di dialogo modale, invitandomi a selezionare le colonne della mia tabella dati che voglio analizzare, dopodiché mi basta fare clic sul pulsante "OK" per procedere. Quando chiamo il componente aggiuntivo, la finestra di dialogo modale appare effettivamente... Ma sia esso che la finestra contenente il set di dati scompaiono immediatamente dietro PowerPoint (dando all'utente l'impressione che l'applicazione sia appena andata in crash).
Noto che se invece di aprire il componente aggiuntivo dalla finestra del set di dati, porto in primo piano la finestra principale di JMP Primo e quindi si esegue il componente aggiuntivo da una delle finestre, il problema non si verifica (o, per essere più precisi, la finestra dei dati scompare dietro PowerPoint, ma la finestra di dialogo modale rimane in primo piano e successivamente vengono visualizzati i risultati dell'analisi anche sopra).
Penso che questa sia la soluzione Potrebbe essere quello di inserire uno script di avvio di una riga nel componente aggiuntivo che renda la finestra principale di JMP la finestra corrente (ovvero spostandola davanti a qualsiasi altra applicazione che sia aperta) prima di avviare l'analisi, ma noto che la funzione Ottieni elenco finestre non include la finestra Home di JMP nell'elenco, quindi non posso farvi riferimento in questo modo.
Qualcuno può suggerire come posso risolvere questo problema? (Ovviamente potrei semplicemente dire a tutti gli utenti di non utilizzare il componente aggiuntivo nel modo descritto sopra, ma preferirei di gran lunga evitare che il problema si verifichi tramite script, se possibile.)
Grazie molto.
Condivisione e comunicazione dei risultatiRi: Finestre nascosteOra ho risolto il problema delle finestre nascoste, quindi contrassegnerò questo problema come risolto quando lo pubblicherò.
Per la cronaca, il problema è stato causato dal fatto che la tabella dati è stata ridotta a icona (cosa che avevo fatto esclusivamente per scopi estetici) prima che venisse richiamata la finestra di dialogo di selezione della colonna. Se qualcuno dovesse riscontrare un problema simile in futuro, il seguente breve script potrebbe aiutare a identificarne la causa. Questo dovrebbe essere compilato in un componente aggiuntivo e quindi richiamato dal menu principale sopra la tabella dei dati ( non dalla finestra principale di JMP) una volta aperta la tabella dati dalla barra delle applicazioni di Windows.
Names Default to Here(1);
fnSelectColumn = function({dt}, {default local},
new window("Column Selection", << modal(1),
clb = ColListBox(dt, all, Output = (clb << get selected), << set max selected(1))
);
Output
);
expr_Load_DT = expr(
dt = current data table();
if(type(dt)=="Empty",
dt = open(PickFile( "Select the JMP data set to be analyzed:",, {"JMP Data Files|JMP"} ));
)
);
/*
================
START OF PROGRAM
================
*/
Intro = "There's another full-screen Windows application open right now, and you've just loaded the data table you can see ";
Intro = Intro || "behind this window from the Windows Taskbar, prior to selecting a column for analysis.\!r\!rHowever, the ";
Intro = Intro || "modal window containing the column selection dialog will disappear behind the other Windows application if the ";
Intro = Intro || "data table is minimized prior to the column selection dialog being displayed. (If it hasn't, there's no problem.)";
MinimizeYN = 1;
new window("Minimize the Data Table?", << modal(1),
VListBox(
HCenterBox(BorderBox(TextBox(Intro, << padding(5)), << padding(10), << sides(15))),
SpacerBox(size(0, 10)),
rb = RadioBox({"Minimize the data table after closing this window", "Don't minimize the data table after closing this window"},
MinimizeYN = (2 - (rb << get))
)
)
);
expr_Load_DT;
dt << minimize window(MinimizeYN); // THIS line is the one that causes the problem;
Output = fnSelectColumn(dt);
Caption("(You selected \!"" || Output[1] || "\!")"); wait(1.5); caption(remove);
/*
================
END OF PROGRAM
================
*/
Ri: Finestre nascosteCiao IH,
Giusto per confermare, lo sto eseguendo su MS Windows (non so se lo stesso problema è evidente su un Mac) e nel caso in cui la versione sia rilevante, sto eseguendo JMP 15.0.2, quindi il mio è precedente al tuo JMP 15.2.1 - ma ho accesso a JMP 16EA versione 8 e vedo lo stesso comportamento anche lì.
In poche parole, se la finestra Home di JMP è nascosta dietro un'applicazione Windows non JMP completamente ingrandita (la chiamerò semplicemente "X", poiché non sembra fare alcuna differenza quale applicazione sia) quando viene aggiunto -in viene eseguito, anche qualsiasi finestra di output generata dal componente aggiuntivo viene nascosta dietro X. Da quanto sopra deduco che se potessi trovare un modo per portare immediatamente in primo piano la finestra iniziale di JMP ogni volta che viene eseguito il componente aggiuntivo, il problema sarebbe risolto.
Ho provato a confrontare la struttura del file addin.jmpcust che hai pubblicato con quella generata dal generatore di componenti aggiuntivi che ho utilizzato, ma la mia è molto più lunga e non so esattamente cosa sto cercando, quindi sospetto che dovrò creare una versione del componente aggiuntivo ridotta all'osso e poi chiedere nuovamente aiuto, allegando una copia dello script JSL, quando l'avrò fatto.
Sono profondamente consapevole che qualcosa del genere è quasi impossibile da diagnosticare se non può essere replicato, quindi riferirò quando avrò qualcosa di più concreto su cui lavorare.
Molte grazie per il vostro aiuto.
Ri: Finestre nascosteNon sono riuscito a replicarlo su JMP 15.2.1 su Windows.Ecco come chiamo la maggior parte delle finestre all'interno dei menu per i componenti aggiuntivi, forse c'è qualcosa di diverso da quello che stai utilizzando?
All'interno di addin.jmpcust:
<jm:command>
<jm:name>ABOUT</jm:name>
<jm:caption>About</jm:caption>
<jm:action type="path">$ADDIN_HOME(com.domain.subdomain)\addinAbout.jsl</jm:action>
<jm:icon type="none"></jm:icon>
</jm:command>
e da qualche parte all'interno del file addinAbout.jsl c'è una funzione Nuova Finestra().