Problema
Molte applicazioni richiedono all'utente di inserire input o scelte e quindi di agire su quell'input. Questa ricetta crea un modale (es., non-modale) finestra di dialogo con le scelte. Quando l'utente fa clic su Va bene pulsante per chiudere la finestra, memorizza gli input dell'utente in variabili e quindi fa tutto il lavoro richiesto.
Soluzione
Il Nuova finestra() la funzione creerà una finestra che è possibile utilizzare per richiedere all'utente l'input. All'interno della nuova finestra puoi usare caselle di visualizzazione del selettore di input per raccogliere le scelte dell'utente.
Quindi utilizzerai il Imposta funzione o Imposta script opzioni su a Scatola dei pulsanti per memorizzare i valori dalle finestre di visualizzazione in variabili JSL.
La parte finale dello script nella Casella dei pulsanti esegue il lavoro richiesto dopo che l'utente ha chiuso la finestra.
win = New Window( "Set the Value",
H List Box( Text Box( "Set this value" ), num_edit_box1 = Number Edit Box( 42 ) ),
check_box_1 = Check Box( "On" ),
combo_box1 = Combo Box( {"Choice 1", "Choice 2", "Choice 3"} ),
list_box1 = List Box( {"Choice 3", "Choice 4", "Choice 5"} ),
H List Box(
Button Box( "OK",
//store results in jsl variables
num_input = num_edit_box1 << get;
check_box_input = check_box_1 << get;
combo_box_input = combo_box1 << get selected;
list_box_input = list_box1 << get selected;
//close the window
//wait until you've unloaded the input boxes before you closing
//or else they'll be gone
win << close window;
//now do whatever work you want with the inputs
Show( num_input, check_box_input, combo_box_input, list_box_input );
),
//a cancel button that closes the window and doesn't store store the results
Button Box( "Cancel", win << close window )
)
);
Discussione
Le finestre di dialogo non modali sono un po 'più complicate delle finestre di dialogo modali da qualsiasi codice dopo il Nuova finestra() verrà eseguito prima che la finestra di dialogo venga chiusa. Questo è il motivo per cui devi mettere il "lavoro" da fare nello script del pulsante.
Guarda anche
Recupera valori da una finestra di dialogo non modale