Versteckte FensterHallo, ich habe ein Problem damit, dass JMP-Fenster hinter anderen (nicht JMP-)Anwendungen geöffnet werden, wenn ich eines meiner Add-Ins ausführe. Die folgende Schrittfolge veranschaulicht das Problem, wie es auf meinem Laptop auftritt:
- Ich öffne JMP und ich öffne auch einen JMP-Datensatz.
- Ich öffne nun eine andere Anwendung (z. B. PowerPoint) und maximiere sie (damit weder das JMP-Home-Fenster noch das Fenster mit dem Datensatz sofort sichtbar sind).
- Ich mache etwas in PowerPoint (z. B. bearbeite eine Folie oder was auch immer), möchte dann aber zu meiner Analyse in JMP zurückkehren. Wenn ich PowerPoint geöffnet und maximiert lasse, fahre ich mit der Maus über das JMP-Symbol am unteren Bildschirmrand und wähle das Fenster aus, das den Datensatz enthält, den ich analysieren möchte. Dieses Fenster befindet sich jetzt über PowerPoint (obwohl das JMP-Startfenster immer noch ausgeblendet ist). hinter Steckdose).
- Da ich jetzt mein Add-in ausführen möchte, wähle ich es aus dem Menü oben im Datensatzfenster aus. Als Erstes öffnet mein Add-In ein modales Dialogfenster, in dem ich aufgefordert werde, die Spalten meiner Datentabelle auszuwählen, die ich analysieren möchte. Anschließend klicke ich einfach auf die Schaltfläche „OK“, um fortzufahren. Wenn ich das Add-In aufrufe, erscheint tatsächlich das modale Dialogfenster ... Aber Sowohl es als auch das Fenster mit dem Datensatz verschwinden sofort hinter PowerPoint (was dem Benutzer den Eindruck vermittelt, dass die Anwendung gerade abgestürzt ist).
Ich stelle fest, dass ich das JMP-Home-Fenster in den Vordergrund bringe, anstatt das Add-In über das Datensatzfenster zu öffnen Erste ausführen und dann das Add-In in einem der beiden Fenster ausführen, tritt das Problem nicht auf (genauer gesagt verschwindet das Datenfenster immer noch hinter PowerPoint, aber das modale Dialogfenster bleibt oben – und die Ergebnisse der Analyse werden anschließend angezeigt auch oben).
Ich denke, das ist die Lösung könnte B. ein einzeiliges Startskript in das Add-In einfügen, das das JMP-Home-Fenster zum aktuellen Fenster macht (dh es vor alle anderen Anwendungen verschiebt, die gerade geöffnet sind), bevor die Analyse gestartet wird, aber das merke ich Die Funktion „Fensterliste abrufen“ schließt das JMP-Startfenster nicht in die Liste ein – daher kann ich es nicht auf diese Weise referenzieren.
Kann mir jemand vorschlagen, wie ich das lösen kann? (Ich könnte natürlich allen Benutzern einfach sagen, dass sie das Add-In nicht auf die oben beschriebene Weise verwenden sollen, aber ich würde das Problem lieber verhindern, wenn es möglich ist, indem ich Skripte verwende.)
Vielen Dank.
Ergebnisse teilen und kommunizierenBetreff: Versteckte FensterIch habe das Problem mit den ausgeblendeten Fenstern nun gelöst, daher werde ich dieses Problem als gelöst markieren, wenn ich dies poste.
Nur zur Klarstellung: Das Problem wurde dadurch verursacht, dass die Datentabelle vor dem Aufruf des Spaltenauswahldialogs minimiert wurde (was ich nur aus kosmetischen Gründen getan hatte). Sollte in Zukunft jemand auf ein ähnliches Problem stoßen, kann das folgende kurze Skript helfen, die Ursache zu ermitteln. Dies müsste in ein Add-In kompiliert und dann über das Hauptmenü über der Datentabelle aufgerufen werden ( nicht aus dem JMP-Startfenster), sobald die Datentabelle über die Windows-Taskleiste geöffnet wurde.
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
================
*/
Betreff: Versteckte FensterHallo IH,
Nur zur Bestätigung: Ich verwende dies unter MS Windows (ich weiß nicht, ob das gleiche Problem auf einem Mac auftritt) und falls die Version relevant ist, verwende ich JMP 15.0.2, meine Version ist also älter als Ihr JMP 15.2.1 – aber ich habe Zugriff auf JMP 16EA Version 8 und sehe dort auch das gleiche Verhalten.
Kurz gesagt, wenn das JMP-Home-Fenster beim Hinzufügen hinter einer vollständig maximierten Nicht-JMP-Windows-Anwendung verborgen ist (ich nenne es einfach „X“, da es anscheinend keinen Unterschied macht, um welche Anwendung es sich handelt). -in ausgeführt wird, wird jedes vom Add-In generierte Ausgabefenster ebenfalls hinter X verborgen. Aus dem oben Gesagten schließe ich, dass das Problem gelöst wäre, wenn ich eine Möglichkeit finden könnte, das JMP-Home-Fenster bei jeder Ausführung des Add-Ins sofort in den Vordergrund zu holen.
Ich habe versucht, die Struktur der von Ihnen geposteten Datei addin.jmpcust mit der Struktur zu vergleichen, die von dem von mir verwendeten Add-In Builder generiert wurde, aber meine ist sehr viel länger und ich weiß nicht genau, wonach ich suche, also habe ich Ich vermute, ich muss eine Version des Add-Ins erstellen, die bis auf das Wesentliche reduziert ist, und dann erneut um Hilfe bitten und eine Kopie des JSL-Skripts anhängen, wenn ich damit fertig bin.
Ich bin mir sehr bewusst, dass so etwas fast unmöglich zu diagnostizieren ist, wenn es nicht reproduziert werden kann. Ich melde mich daher wieder, wenn ich etwas Konkreteres habe, mit dem ich weitermachen kann.
Vielen Dank für deine Hilfe.
Betreff: Versteckte FensterIch konnte dies unter JMP 15.2.1 unter Windows nicht replizieren.So rufe ich die meisten Fenster in den Menüs für Add-Ins auf. Vielleicht gibt es etwas anderes als das, was Sie verwenden?
Innerhalb von 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>
und irgendwo in der Datei addinAbout.jsl befindet sich eine New Window()-Funktion.