Dialogfenster geöffnet lassen?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Jeder hat einen schnellen Code, um die Option „Dialog geöffnet lassen“ nachzuahmen, die Sie in den Tabellenplattformen sehen, z. B. „Teilmenge“.Wenn ja, funktioniert es mit einem modalen Fenster?

Betreff: Dialogfenster geöffnet lassen?Ich bin mir nicht sicher, was das Verwirrende daran ist, dass eine Funktion basierend auf den bereitgestellten Ausdrücken und dem von ihr beeinflussten Objekt zwei verschiedene Dinge tut.Schauen Sie sich den Löschbefehl unten an:

Ich bin mir nicht sicher, welchen Fehler Sie im Protokoll erhalten, aber Sie können auf jeden Fall Skripte für die Schaltflächen „OK“ und „Abbrechen“ bereitstellen, unabhängig davon, ob das Fenster modal ist oder nicht.Nach dem, was Sie oben beschrieben haben, habe ich das Gefühl, dass Sie nicht verstehen, was ein modales Fenster ist, aber ich könnte mich irren.
Betreff: Dialogfenster geöffnet lassen?Sie können auch Folgendes versuchen:
Namen werden standardmäßig hier angezeigt ( 1 ) ;
offen bleiben = 0 ;
Neues Fenster ( "Beispiel" , Zeige das Menü ( 0 ) , Symbolleisten anzeigen ( 0 ) , Automatisches Ausblenden unterdrücken ,
<< Modal , <
Textfeld ( „Beispiel: Kontrollkästchen „Dialog geöffnet lassen““ ) ,
Textfeld ( „“ ) ,
H-Listenfeld (
keepcbox = Kontrollkästchen ( „Dialog geöffnet lassen“ , offen bleiben = keepcbox << erhalten ( 1 ) ) ,
Button-Box ( "OK" ,
// Geben Sie den Namen eines Ausdrucks ein, der als Skript ausgeführt werden soll
) ,
Button-Box ( "Stornieren" )
)
) ;
<Betreff: Dialogfenster geöffnet lassen?
Ich stimme MS zu: Ich bin mir nicht sicher, was das ist << Beim Schließen() Funktion tut entweder. Die JSL-Syntaxreferenz (unter Hilfe > Bücher) erklärt die Funktion „Beim Schließen“ anders als der Skriptindex. Aus der Skriptreferenz: „ < lässt sich nicht schließen. Verhindert ein Argument von 0 also, dass das Fenster geschlossen wird, oder generiert ein Fenster, das sich nicht schließen lässt, ein 0-Ergebnis der Funktion? Sehr verwirrend.
Kommen wir zurück zum Problem Ihres modalen Dialogfelds ... ich glaube, dass der << Modal Der Befehl behandelt die Schaltflächen „OK“ und „Abbrechen“ als spezielle Schaltflächen (gleiches Verhalten wie die alte Dialog()-Funktion). Daher können keine Skripte an die Schaltflächen „OK“ und „Abbrechen“ angehängt werden (im Protokoll erscheint ein Fehler).
Hier ist also ein weiterer Ansatz, der für Ihr modales Fenster funktionieren könnte. Erstellen Sie weitere Schaltflächen, die Aktionen ausführen können, indem Sie diesen Schaltflächen Skripte hinzufügen. Das Fenster bleibt geöffnet, bis auf die Schaltfläche „OK“ geklickt wird. Leider glaube ich nicht, dass Sie die Schaltfläche „OK“ in „Schließen“ umbenennen oder zulassen können, dass eine andere Schaltfläche das modale Fenster schließt.
Names Default To Here( 1 );win = New Window( "Example", << Modal, << On Close ( Print( "Closed" ) ), // prints to log window Show Menu( 0 ), Show Toolbars( 0 ), Suppress Autohide, Text Box( "Example: Modal Dialog Window" ), Text Box( "" ), H List Box( Button Box( "Say Hello", Print( "Hello" ) ), // prints to log window Button Box( "New Window", newwin = New Window( "New Window" ) ), Button Box( "OK" ) ));
Ich habe ein Beispiel beigefügt << Beim Schließen() in diesem Skript. Sie können sehen, dass diese Skriptaktion ausgeführt wird, wenn das Fenster geschlossen wird.
Viel Glück!
Howard
Betreff: Dialogfenster geöffnet lassen?Aus dem Skriptindex – unter „Neues Fenster“:
„Wenn das Modal-Argument angegeben wird, wird das neue Fenster als modales Fenster erstellt.„Beim Öffnen“, „Beim Schließen“, „Bei Validierung“ und „Ergebnis zurückgeben“ sind nur für modale Fenster verfügbar.On Open() wertet seinen Ausdruck aus, wenn das Fenster erstellt wird. Wenn On Close() Null zurückgibt, wird das Schließen des Fensters verhindert.“
Ich bin mir nicht sicher, warum es auf Ihrem Mac nicht funktioniert, aber ich vermute, dass Sie das Update nicht auf Current Window() durchgeführt haben.
Betreff: Dialogfenster geöffnet lassen?Ich bin mir nicht sicher, was Beim Schließen(1) Und Bei Schließung(0) sollen hier tun.
Dies funktioniert jedoch in JMP 12.1 für Mac nicht gut. Wenn „Dialog geöffnet lassen“ aktiviert ist und ich auf „OK“ klicke, bleibt ein leeres (nicht modales) Fenster ohne offensichtliche Methode zum Schließen zurück. Und wenn ich im Menü „Schließen“ wähle, stürzt JMP ab. Seltsam
Betreff: Dialogfenster geöffnet lassen?Noch ein Hinweis: Es gibt Probleme mit „Aktuelles Fenster()“, wenn der ausgeführte Ausdruck Fenster erstellt.Es wurde auf keepcbox (oder eine andere Anzeige im modalen Fenster) umgestellt und es sollte behoben sein.
Betreff: Dialogfenster geöffnet lassen?Eigentlich habe ich es herausgefunden:
'<
Das ist schlecht, weil Sie am Ende ein modales Fenster erhalten, das sich nicht schließen lässt, aber wenn Sie es an hlrauchs Skript anhängen:
Namen werden standardmäßig hier angezeigt ( 1 ) ;
offen bleiben = 0 ;
Neues Fenster ( "Beispiel" , Zeige das Menü ( 0 ) , Symbolleisten anzeigen ( 0 ) , Automatisches Ausblenden unterdrücken ,
<< Modal ,
Textfeld ( „Beispiel: Kontrollkästchen „Dialog geöffnet lassen““ ) ,
Textfeld ( „“ ) ,
H-Listenfeld (
keepcbox = Kontrollkästchen ( „Dialog geöffnet lassen“ , offen bleiben = keepcbox << erhalten ( 1 ) ) ,
Button-Box ( "OK" ,
// Geben Sie den Namen eines Ausdrucks ein, der als Skript ausgeführt werden soll
Wenn ( ! offen bleiben , Aktuelles Fenster () << Beim Schließen ( 1 ) , Aktuelles Fenster () << Beim Schließen ( 0 )) ;
) ,
Button-Box ( "Stornieren" ,
Aktuelles Fenster () << Fenster schließen
)
)
) ;
Betreff: Dialogfenster geöffnet lassen?Das ist es, wonach ich suche. Ich brauche es nur, um mit einem modalen Fenster zu arbeiten, da ich den Benutzer zum Antworten zwingen möchte.Irgendwelche Gedanken?
Betreff: Dialogfenster geöffnet lassen?msharp,
Es hört sich so an, als ob Sie das Kontrollkästchen „Dialog offen halten“ als Kontrollkästchen im Dialogfenster hinzufügen möchten, oder? Wenn das der Fall ist, finden Sie hier einen Teil eines Skripts, mit dem ich eine oder mehrere Spalten mit Zufallszahlen hinzugefügt habe. Das Skript hinter der Schaltfläche „OK“ schließt das Fenster nur, wenn das Kontrollkästchen deaktiviert ist.
Names Default to Here( 1 );keepopen = 0;New Window( "Example", Show Menu( 0 ), Show Toolbars( 0 ), Suppress Autohide, Text Box( "Example: Keep Dialog Open Checkbox" ), Text Box( "" ), H List Box( keepcbox = Check Box( "Keep dialog open", keepopen = keepcbox << get( 1 ) ), Button Box( "OK", // Insert name of an expression to run as a script If( !keepopen, Current Window() << Close Window); ), Button Box( "Cancel", Current Window() << Close Window ) ));
Natürlich möchten Sie dem Dialogfenster weitere Optionen hinzufügen ( fortgeschrittenes Beispiel im JMP Scripting Guide; Seiten 454-456). Ich glaube nicht, dass Sie mit der älteren (modalen) Column Dialog()-Methode ein ähnliches Kontrollkästchen hinzufügen können. Sie können das obige Fenster modal machen, indem Sie eine <
Howard
Betreff: Dialogfenster geöffnet lassen?Hallo msharp ,
Ich habe diese beiden widersprüchlichen Links zu dem Thema gefunden:
Dieser (Seite 83) sagt, dass es nicht sehr nützlich ist:
https://books.google.co.uk/books?id=42Bt1lDZLYoC&pg=PA82&lpg=PA82&dq=jsl+keep+dialog+open&source=bl&ots=rnr7dBRzZv&sig=1aAcJT94KS6DsbpLwTUzOen3xkE&hl=en&sa=X&ved=0ahUKEWj6wqXDiK DJAhXIfhoKHZakDyoQ6AEIIDAA#v=onepage&q=jsl%20keep% 20dialog%20open&f=false
Hier wird die Verwendung von „Dialog geöffnet lassen (1)“ gezeigt, aber ich bin mir nicht sicher, ob es die Art und Weise ist, nach der Sie suchen:
http://www.jmp.com/support/help/Utility_Functions.shtml
am besten,
Ron
Betreff: Dialogfenster geöffnet lassen?Aus dem Scripting-Index:
Namen standardmäßig hier( 1 );
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = Modell anpassen(
Y( :ABRIEB ),
Effekte( :SILICA, :SILANE ),
Persönlichkeit (Standard der kleinsten Quadrate)
);
obj << Dialog offen halten( 1 );
obj << Ausführen;