Posted to tcl by xharx at Thu Mar 04 20:05:35 GMT 2021view pretty

proc buttoncommand {} {
	quit
	destroy .
}

proc new {} {
	global done
	set done 0
	after 1000 set done 1
	while {! $done} {
		set newtext "foo"
		global ltext
		set ltext $newtext
		update
	}
	set ltext "bar"
	puts $done
}

proc new2 {} { 
	set done 0; 
	after 1000 {set done 1} 
	set ::ltext2 1 
	proc handler {} { 
		incr ::ltext2 
		set ::ev 
		[after 10 handler] 
	} 
	handler vwait done 
	after cancel $::ev 
	set ::ltext "done" 
} 

listbox .l1 -width 50 -height 10 -listvariable ltext
pack .l1
listbox .l2 -width 50 -height 10 -listvariable ::ltext2
pack .l2 
button .b1 -text "ok" -command {quit}
button .b2 -text "update" -command {new}
button .b3 -text "update2" -command {new2}
pack .b1
pack .b2
pack .b3