#!/usr/local/cmb/wishx -f proc power {base p} { set result 1 while {$p>0} { set result [expr $result*$base] set p [expr $p-1] } return $result } entry .base -width 6 -relief sunken -textvariable base entry .power -width 6 -relief sunken -textvariable power label .lab1 -text "to the power" label .lab2 -text "is" label .lab3 -textvariable result pack .base .lab1 .power .lab2 .lab3 -side left \ -padx 1m -pady 2m bind .base {set result [power $base $power]} bind .base {set result [power $base $power]} bind .base {set result [power $base $power]} bind .power {set result [power $base $power]} bind .power <3> {set result [power $base $power]} bind .power {set result [power $base $power]}