1. package require Tk 2. 3. text .t 4. pack .t 5. .t insert 1.0 test 6. 7. proc save_state { widget } { 8. variable state 9. set state($widget) [$widget get 1.0 end] 10. } 11. 12. proc restore_state {widget} { 13. variable state 14. $widget delete 1.0 end 15. $widget insert 1.0 $state($widget) 16. bind $widget {} 17. } 18. 19. proc display_result {} { 20. save_state .t 21. .t delete 1.0 end 22. .t insert 1.0 {this is the result} 23. bind .t {restore_state .t ; break} 24. } 25. 26. display_result 27. 28. # from here everything is handled by events