Mantenere aperta la finestra di dialogo?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Qualcuno ha un codice rapido per imitare l'opzione "Mantieni aperta la finestra di dialogo" che vedi nelle piattaforme delle tabelle, come "sottoinsieme".Se sì, funziona con una finestra modale?

Re: Mantenere la finestra di dialogo aperta?Non sono sicuro di cosa ci sia confusione in una funzione che fa due cose diverse in base alle espressioni fornite e all'oggetto che influenza.Dai un'occhiata al comando di eliminazione qui sotto:

Non sono sicuro dell'errore visualizzato nel registro, ma puoi sicuramente fornire script ai pulsanti "OK" e "Annulla" indipendentemente dal fatto che la finestra sia modale o meno.Da quanto descrivi sopra, ho la sensazione che tu non capisca cosa sia una finestra modale, ma potrei sbagliarmi.
Re: Mantenere la finestra di dialogo aperta?Puoi anche provare:
Nomi predefiniti qui ( 1 ) ;
tenere aperto = 0 ;
Nuova finestra ( "Esempio" , Mostra Menù ( 0 ) , Mostra barre degli strumenti ( 0 ) , Sopprimi la funzione Nascondi automaticamente ,
<< Modale , << Alla convalida(!keepopen),
Casella di testo ( "Esempio: casella di controllo Mantieni finestra di dialogo aperta" ) ,
Casella di testo ( "" ) ,
Casella di riepilogo H (
keepcbox = Casella di controllo ( "Mantieni la finestra di dialogo aperta" , tenere aperto = keepcbox << Ottenere ( 1 ) ) ,
Casella dei pulsanti ( "OK" ,
// Inserisci il nome di un'espressione da eseguire come script
) ,
Casella dei pulsanti ( "Annulla" )
)
) ;
<Re: Mantenere la finestra di dialogo aperta?
Sono d'accordo con MS: non sono sicuro di cosa << Alla chiusura() la funzione sta facendo entrambe le cose. Il riferimento alla sintassi JSL (in Guida > Libri) spiega la funzione Alla chiusura in modo diverso rispetto all'indice di scripting. Dal riferimento allo scripting: " < non riesce a chiudere." Quindi un argomento pari a 0 impedisce la chiusura della finestra o una finestra che non si chiude genera un risultato 0 dalla funzione? Molto confuso.
Tornando al problema della finestra di dialogo modale... Penso che il < Il comando tratta i pulsanti "OK" e "Annulla" come pulsanti speciali (stesso comportamento della vecchia funzione Dialog()). Pertanto non è possibile allegare script ai pulsanti "OK" e "Annulla" (nel registro viene visualizzato un errore).
Quindi ecco un altro approccio che potrebbe funzionare per la tua finestra modale. Crea altri pulsanti che possono eseguire azioni allegando script a tali pulsanti. La finestra rimane aperta finché non si fa clic sul pulsante "OK". Sfortunatamente non penso che tu possa rinominare il pulsante "OK" in "Chiudi" o consentire a un altro pulsante di chiudere la finestra 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" ) ));
Ho incluso un esempio di << Alla chiusura() in questa sceneggiatura. Puoi vedere che esegue questa azione di script quando la finestra è chiusa.
Buona fortuna!
Howard
Re: Mantenere la finestra di dialogo aperta?Dall'indice degli script in una nuova finestra:
"Se viene specificato l'argomento Modale, la nuova finestra viene creata come finestra modale.All'apertura, Alla chiusura, Alla convalida e Restituisci risultato sono disponibili solo per le finestre modali.On Open() valuta la sua espressione quando viene creata la finestra. Se On Close() restituisce zero, alla finestra viene impedita la chiusura."
Non sono sicuro del motivo per cui non funziona sul tuo Mac, ma suppongo che tu non abbia effettuato l'aggiornamento su Current Window().
Re: Mantenere la finestra di dialogo aperta?Non sono sicuro di cosa Alla chiusura(1) E Alla chiusura(0) dovrebbero fare qui.
Tuttavia, ciò non funziona bene in JMP 12.1 per Mac. Se è selezionata l'opzione "Mantieni aperta la finestra di dialogo" e faccio clic su "OK", viene lasciata una finestra vuota (non modale) senza alcun metodo ovvio per chiuderla. E se seleziono "Chiudi" nel menu JMP si blocca. Strano
Re: Mantenere la finestra di dialogo aperta?Solo un'altra nota, si verificano problemi con "Current Window()" se l'espressione eseguita crea finestre.Passato a keepcbox (o qualsiasi altro display nella finestra modale) e dovrebbe essere risolto.
Re: Mantenere la finestra di dialogo aperta?In effetti l'ho capito:
'<
Questo è un male perché ti ritroverai con una finestra modale e che non si chiuderà, ma aggiungendola allo script di hlrauch:
Nomi predefiniti qui ( 1 ) ;
tenere aperto = 0 ;
Nuova finestra ( "Esempio" , Mostra Menù ( 0 ) , Mostra barre degli strumenti ( 0 ) , Sopprimi la funzione Nascondi automaticamente ,
<< Modale ,
Casella di testo ( "Esempio: casella di controllo Mantieni finestra di dialogo aperta" ) ,
Casella di testo ( "" ) ,
Casella di riepilogo H (
keepcbox = Casella di controllo ( "Mantieni la finestra di dialogo aperta" , tenere aperto = keepcbox << Ottenere ( 1 ) ) ,
Casella dei pulsanti ( "OK" ,
// Inserisci il nome di un'espressione da eseguire come script
Se ( ! tenere aperto , Finestra corrente () << Alla chiusura ( 1 ) , Finestra corrente () << Alla chiusura ( 0 )) ;
) ,
Casella dei pulsanti ( "Annulla" ,
Finestra corrente () << Chiudi la finestra
)
)
) ;
Re: Mantenere la finestra di dialogo aperta?Questo è quello che sto cercando, mi serve solo che funzioni con una finestra modale poiché voglio forzare l'utente a rispondere.qualche idea?
Re: Mantenere la finestra di dialogo aperta?molto nitido,
Sembra che tu voglia aggiungere "Mantieni la finestra di dialogo aperta" come casella di controllo nella finestra di dialogo, giusto? Se è così, ecco parte di uno script che ho utilizzato per aggiungere una o più colonne di numeri casuali. Lo script dietro il pulsante "OK" chiude la finestra solo se la casella di controllo è deselezionata.
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 ) ));
Ovviamente vorrai aggiungere più opzioni alla finestra di dialogo ( esempio avanzato nella Guida allo scripting JMP; pagine 454-456). Non penso che sia possibile aggiungere una casella di controllo simile utilizzando il vecchio metodo (modale) Column Dialog(). Puoi rendere modale la finestra sopra aggiungendo un'opzione <
Howard
Re: Mantenere la finestra di dialogo aperta?CIAO msharp ,
Ho trovato questi due link contrastanti sull'argomento:
Questo (Pagina 83) dice che non è molto 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=it&sa=X&ved=0ahUKEwj6wqX DiKDJAhXIfhoKHZakDyoQ6AEIIDAA#v=una pagina&q=jsl%20keep% 20dialog%20open&f=false
questo mostra l'uso di "Mantieni la finestra di dialogo aperta (1)" ma non sono sicuro che sia il modo che stai cercando:
http://www.jmp.com/support/help/Utility_Functions.shtml
migliore,
Ron
Re: Mantenere la finestra di dialogo aperta?Dall'indice degli script:
Nomi predefiniti qui (1);
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
oggetto = Adatta modello(
Y(:ABRASIONE),
Effetti( :SILICE, :SILANO ),
Personalità (minimi quadrati standard)
);
obj << Mantieni la finestra di dialogo aperta( 1 );
oggetto << Esegui;