Next: Validating User Inputs Up: Getting Started: the Previous: Accessing The Value

### Disabling Callbacks Temporarily

Now, if you want to change a value from within the program, you have to disable the callback. The reason is that the callback runs whenever you (as well as the user) makes a change. In particular, if you make a change within the callback procedure and forget to disable the callback, it will recursively call itself and enter an infinite loop. To avoid this problem, you should use the `-disablecallback` option. Here is an example:

`tixControl .c -command addOne
proc addOne {value} {
.c config -disablecallback true
.c config -value [incr value]
.c config -disablecallback false
}`

The procedure `addOne` adjusts the value of `.c` by one whenever the user enters a new value into `.c`. Notice that it is necessary to set `-disablecallback` here or otherwise `addOne` will be infinitely recursed! That is because `addOne` is called every time the value changes, either by the user or by the program.