Garder la fenêtre de dialogue ouverte ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Tout le monde dispose d'un code rapide pour imiter l'option "Garder la boîte de dialogue ouverte" que vous voyez dans les plates-formes du tableau, comme "sous-ensemble".Si oui, est-ce que ça marche avec une fenêtre modale ?

Re : Garder la fenêtre de dialogue ouverte ?Je ne sais pas ce qui prête à confusion dans le fait qu'une fonction fasse deux choses différentes en fonction des expressions fournies et de l'objet qu'elle influence.Découvrez la commande de suppression ci-dessous :

Je ne suis pas sûr de l'erreur que vous obtenez dans le journal, mais vous pouvez certainement fournir des scripts aux boutons « OK » et « Annuler », que la fenêtre soit modale ou non.D'après ce que vous décrivez ci-dessus, j'ai l'impression que vous ne comprenez pas ce qu'est une fenêtre modale, mais je peux me tromper.
Re : Garder la fenêtre de dialogue ouverte ?Vous pouvez également essayer :
Noms par défaut ici ( 1 ) ;
garder ouverte = 0 ;
Nouvelle fenetre ( "Exemple" , Afficher le menu ( 0 ) , Afficher les barres d'outils ( 0 ) , Supprimer le masquage automatique ,
<< Modal , <
Zone de texte ( "Exemple : case à cocher Garder la boîte de dialogue ouverte" ) ,
Zone de texte ( "" ) ,
Zone de liste H (
gardercbox = Case à cocher ( "Gardez la boîte de dialogue ouverte" , garder ouverte = gardercbox << obtenir ( 1 ) ) ,
Boîte à boutons ( "D'ACCORD" ,
// Insère le nom d'une expression à exécuter en tant que script
) ,
Boîte à boutons ( "Annuler" )
)
) ;
<Re : Garder la fenêtre de dialogue ouverte ?
Je suis d'accord avec MS : je ne suis pas sûr de ce que << À la fermeture() la fonction fait non plus. La référence de syntaxe JSL (sous Aide > Livres) explique la fonction On Close différemment de l'index de script. Extrait de la référence de script : " < ne parvient pas à fermer." Alors, un argument de 0 empêche-t-il la fermeture de la fenêtre ou une fenêtre qui ne se ferme pas génère-t-elle un résultat 0 de la fonction ? Très perturbant.
Revenons au problème de votre boîte de dialogue modale... Je pense que le << Modal La commande traite les boutons "OK" et "Annuler" comme des boutons spéciaux (même comportement que l'ancienne fonction Dialog()). Les scripts ne peuvent donc pas être attachés aux boutons "OK" et "Annuler" (une erreur apparaît dans le log).
Voici donc une autre approche qui peut fonctionner pour votre fenêtre modale. Créez d'autres boutons pouvant effectuer des actions en attachant des scripts à ces boutons. La fenêtre reste ouverte jusqu'à ce que vous cliquiez sur le bouton "OK". Malheureusement, je ne pense pas que vous puissiez renommer le bouton "OK" en "Fermer" ou autoriser un autre bouton à fermer la fenêtre modale.
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" ) ));
J'ai inclus un exemple de << À la fermeture() dans ce scénario. Vous pouvez voir qu'il exécute cette action de script lorsque la fenêtre est fermée.
Bonne chance!
Howard
Re : Garder la fenêtre de dialogue ouverte ?Depuis l'index des scripts - sous Nouvelle fenêtre :
"Si l'argument Modal est spécifié, la nouvelle fenêtre est créée en tant que fenêtre modale.À l'ouverture, À la fermeture, À la validation et Retour du résultat sont disponibles uniquement pour les fenêtres modales.On Open() évalue son expression lors de la création de la fenêtre. Si On Close() renvoie zéro, la fenêtre ne peut pas se fermer."
Je ne sais pas pourquoi cela ne fonctionne pas sur votre Mac, mais je suppose que vous n'avez pas effectué la mise à jour sur Current Window().
Re : Garder la fenêtre de dialogue ouverte ?Je ne suis pas sûr de quoi À la fermeture(1) et À la fermeture (0) sont censés faire ici.
Toutefois, cela ne fonctionne pas correctement dans JMP 12.1 pour Mac. Si "Garder la boîte de dialogue ouverte" est coché et que je clique sur "OK", une fenêtre vide (non modale) reste sans aucune méthode évidente pour la fermer. Et si je sélectionne "Fermer" dans le menu JMP crash. Bizarre
Re : Garder la fenêtre de dialogue ouverte ?Juste une autre remarque, j'ai des problèmes avec 'Current Window()' si l'expression exécutée crée des fenêtres.Je l'ai basculé vers keepcbox (ou tout autre affichage dans la fenêtre modale) et il devrait être corrigé.
Re : Garder la fenêtre de dialogue ouverte ?En fait, j'ai compris :
'<
C'est mauvais car vous vous retrouverez avec une fenêtre modale qui ne se fermera pas, mais en l'ajoutant au script de hlrauch :
Noms par défaut ici ( 1 ) ;
garder ouverte = 0 ;
Nouvelle fenetre ( "Exemple" , Afficher le menu ( 0 ) , Afficher les barres d'outils ( 0 ) , Supprimer le masquage automatique ,
<< Modal ,
Zone de texte ( "Exemple : case à cocher Garder la boîte de dialogue ouverte" ) ,
Zone de texte ( "" ) ,
Zone de liste H (
gardercbox = Case à cocher ( "Gardez la boîte de dialogue ouverte" , garder ouverte = gardercbox << obtenir ( 1 ) ) ,
Boîte à boutons ( "D'ACCORD" ,
// Insère le nom d'une expression à exécuter en tant que script
Si ( ! garder ouverte , Fenêtre actuelle () << À la fermeture ( 1 ) , Fenêtre actuelle () << À la fermeture ( 0 )) ;
) ,
Boîte à boutons ( "Annuler" ,
Fenêtre actuelle () << Fermer la fenêtre
)
)
) ;
Re : Garder la fenêtre de dialogue ouverte ?C'est ce que je recherche, j'en ai juste besoin pour fonctionner avec une fenêtre modale puisque je veux forcer l'utilisateur à répondre.Des pensées?
Re : Garder la fenêtre de dialogue ouverte ?très pointu,
Il semble que vous souhaitiez ajouter « Garder la boîte de dialogue ouverte » comme case à cocher dans la fenêtre de dialogue, n'est-ce pas ? Si tel est le cas, voici une partie d'un script que j'ai utilisé pour ajouter une ou plusieurs colonnes de nombres aléatoires. Le script derrière le bouton "OK" ferme la fenêtre uniquement si la case n'est pas cochée.
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 ) ));
Bien sûr, vous souhaiterez ajouter plus d'options à la fenêtre de dialogue ( exemple avancé dans le Guide de script JMP ; pages 454-456). Je ne pense pas que vous puissiez ajouter une case à cocher similaire en utilisant l'ancienne méthode (modale) Column Dialog(). Vous pouvez rendre la fenêtre ci-dessus modale en ajoutant une option <
Howard
Re : Garder la fenêtre de dialogue ouverte ?Salut msharp ,
J'ai trouvé ces deux liens contradictoires sur le sujet :
Celui-ci (page 83) dit que ce n'est pas très utile :
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=0ahUKEwj6wqXDi KDJAhXIfhoKHZakDyoQ6AEIIDAA#v=onepage&q=jsl%20keep% 20dialog%20open&f=false
celui-ci montre une certaine utilisation de « Garder la boîte de dialogue ouverte (1) » mais je ne suis pas sûr que ce soit la façon dont vous recherchez :
http://www.jmp.com/support/help/Utility_Functions.shtml
meilleur,
Ron
Re : Garder la fenêtre de dialogue ouverte ?À partir de l'index des scripts :
Noms par défaut ici ( 1 );
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = Ajuster le modèle (
Y( :ABRASION),
Effets ( :SILICA, :SILANE ),
Personnalité (moindres carrés standard)
);
obj << Garder la boîte de dialogue ouverte ( 1 );
obj << Exécuter ;