Più pulsanti "OK" nella finestra modaleÈ possibile progettare una finestra modale con più scelte "OK"?Penso che la mia difficoltà principale sia chiudere la finestra dopo aver selezionato il secondo pulsante OK.Esiste un modo più intelligente per farlo?Sto usando JMP11. L'esempio è sotto.
Grazie!
w1 = New Window( "New Window",
<<MODAL></MODAL>
Ri: Più pulsanti "OK" nella finestra modaleSegno:
La tua risposta mi ricorda ciò che il mio professore di programmazione al primo anno ha detto alla classe a riguardo. Era qualcosa del tipo: "Non confondere intenzionalmente l'utente. Ad esempio, non fare in modo che un pulsante Annulla esegua [elimina *.*]." Mi sono fatto una risatina allora... e adesso!
Ri: Più pulsanti "OK" nella finestra modaleMetto in dubbio la necessità di più di un pulsante OK o Annulla in qualsiasi finestra di dialogo. Questi controlli e le azioni ad essi associate hanno un significato speciale. Questi due pulsanti sono pensati per essere gli unici modi per chiudere la finestra di dialogo.I principi di progettazione dell'interfaccia utente generalmente evitano la duplicazione dei controlli, in particolare i controlli standard.
L'esempio da cui hai iniziato potrebbe utilizzare un altro controllo per determinare l'opzione desiderata prima di chiudere la finestra di dialogo. Sembra che una scatola radio sarebbe appropriata in questa situazione.
Desideri utilizzare controlli separati per scopi separati e distinti.
Ri: Più pulsanti "OK" nella finestra modaleAnche questo mi piacerebbe. L'OK di un pulsante dovrebbe essere correlato a una proprietà del pulsante diversa dal titolo del pulsante.
Ri: Più pulsanti "OK" nella finestra modaleEcco un esempio di cosa dovresti fare
Names Default To Here( 1 );
nw = New Window( "test",
modal,
Text Box( "Click OK if you want to continue" ),
H List Box( Button Box( "OK" ), Button Box( "Cancel" ) )
);
If( nw["button"] == -1,
Throw()
);
Show( "Continuing processing" );
Ri: Più pulsanti "OK" nella finestra modaleCiao ragazzi, sono nuovo a questo. se vuoi che una finestra chieda all'utente solo due opzioni
1) Ok, allora lo script successivo continuerà a fare tutto ciò che deve essere fatto.
2) Annulla, se questa opzione è selezionata, voglio interrompere/uscire dallo script o andare alla fine dello script.
Grazie
Sam
Ri: Più pulsanti "OK" nella finestra modale<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />MS, grazie per averlo sottolineato.Cerchiamo nomi diversi per i pulsanti.Generalmente questo serve solo per gestire le varianti OK/Annulla e Sì/No, ma sì, possono essere utilizzate contemporaneamente.
Ri: Più pulsanti "OK" nella finestra modaleForse è solo una curiosità, ma è possibile avere due pulsanti "OK" funzionanti purché uno sia un pulsante "SI".
Nella finestra modale generata dal codice sottostante, premendo il primo "OK" o il "SI" si ritorna entrambi {Pulsante(1)} mentre il secondo "OK" è inattivo.
New Window( "New Window",
<<MODAL></MODAL>
Ri: Più pulsanti "OK" nella finestra modaleNo, al momento non esiste alcun modo per evitare l'aggiunta del pulsante OK in questo caso.Questo viene fatto per garantire che la finestra possa essere chiusa.
Ri: Più pulsanti "OK" nella finestra modaleHey ragazzi,
Un'altra questione a questa domanda: esiste un modo per avere una finestra di dialogo modale senza i pulsanti OK o Annulla?
nw = new window("Test Modal", << modal(),
panelbox("Actions",
hlistbox(
a = button box("Close A",
print("Closing with A");
a << close window;
),
b = button box("Close B",
print("Closing with B");
b << close window;
)
)
)
);
Ri: Più pulsanti "OK" nella finestra modaleGrazie Dan!
Ri: Più pulsanti "OK" nella finestra modaleSembra che la soluzione di Eric funzioni in JMP 12 (di prossima uscita), ma JMP 11 ha un comportamento diverso.
Un problema nello script originale è che w1 non può essere utilizzato finché non viene completata la chiamata Nuova finestra e, nel caso di una finestra modale, la chiamata non viene completata finché la finestra non viene chiusa!E poiché la finestra scompare nel momento in cui la chiamata ritorna, il valore restituito da una chiamata Modal a Nuova Finestra non è affatto un riferimento alla finestra.Invece è {Button(1)} se è stato premuto OK e {Button(-1)} se è stato premuto Annulla.
Fortunatamente, puoi inviare un messaggio <
w1 = New Window( "New Window",
<<MODAL></MODAL>
Tieni presente che il comportamento del pulsante aggiunto è più vicino a "Annulla" che a "OK": il valore restituito w1 sarà {Button(-1)} per il pulsante "Altro OK" e lo script On Validate() [se esiste ] non verrà eseguito.Va bene: puoi semplicemente eseguire la tua convalida all'interno dello script del pulsante, ma tienilo a mente se guardi il valore restituito da New Window().
Ri: Più pulsanti "OK" nella finestra modaleCiao Eric,
Grazie per la risposta. Quando eseguo il tuo script,
Current Window() << Close Window;
chiude la finestra Script, non la finestra di messaggio. Stai facendo qualcosa di speciale per farlo funzionare?
Ri: Più pulsanti "OK" nella finestra modaleTentativo Finestra corrente() invece di provare a fare riferimento a w1. Questo ha funzionato per me:
w1 = New Window( "New Window",
<<MODAL></MODAL>