In this Topic Hide
A number of functions are available which provide means of obtaining user input through dialog boxes. These are:
Function name | Comment |
---|---|
AddRemoveDialog | Add or remove items to or from a list |
BoolSelect | Up to 6 check boxes |
ChooseDir | Select a directory |
EditObjectPropertiesDialog | Read/Edit a list of property names and values |
EditSelect | Up to 6 edit boxes |
EnterTextDialog | Enter multi line text |
GetSimetrixFile | Get file name of pre-defined type |
GetUserFile | Get file name (general purpose) |
InputGraph | Input text for graph |
InputSchem | Input text for schematic |
NewValueDialog | General purpose dialog box |
RadioSelect | Up to 6 radio buttons |
SelectDialog | Select item(s) from a list |
TableDialog | Present items in a table |
TableEditor | Present lists of items in a table |
TreeListDialog | Select item from tree structured list |
UpDownDialog | Re order items |
UserParametersDialog | Read/Edit a list of parameter names and values |
ValueDialog | Up to 10 edit boxes for entering values |
The above are the general purpose user interface functions. In particular, the function NewValueDialog is very universal in nature and has a wide range of applications. There are many more specialised functions. These are listed in Functions by Application.
Sometimes it is desirable to have a script free run with actions controlled by a key or menu item. For example you may require the user to select an arbitrary number of nodes on a schematic and then press a key to continue operation of the script to perform - say - some calculations with those nodes. You can use the DefKey and DefMenu commands to do this. However, for a key or menu to function while a script is executing, you must specify "immediate" mode when defining it. Only a few commands may be used in "immediate" mode definitions. To control script execution, the Let command may be used. The procedure is to have the key or menu assign a global variable a particular value which the script can test. The following example outputs messages if F2 or F3 is pressed, and aborts if F4 is pressed:
defkey F2 "scriptresume;let global:test=1" 5 |
defkey F3 "scriptresume;let global:test=2" 5 |
defkey F4 "scriptresume;let global:test=0" 5 |
let global:test = -1 |
while 1 |
scriptpause |
if global:test=0 then |
exit script |
elseif global:test=1 then |
echo F2 pressed |
elseif global:test=2 then |
echo F3 pressed |
endif |
let global:test = -1 |
endwhile |
unlet global:test |
|