У меня есть холст, расположенный в подокне моего основного приложения:
.dsm.nb.mdlbuild.canvas
Кроме того, у меня есть следующая (одна из нескольких) процедура, позволяющая пользователю перемещать объекты на холсте:
proc grab { xx yy } {
global currentx currenty
set currentx $xx
set currenty $yy
}
Я использую эту привязку:
.dsm.nb.mdlbuild.canvas bind $tagtomove <Button-1> {grab %x %y }
ПРОБЛЕМА:
Когда пользователь закрывает окно (.dsm), холст разрушается, но привязка, кажется, «выживает».
Когда пользователь затем щелкает куда-то, он получает ошибку:
wrong args: should be "grab xx yy"
Это потому, что xx и yy пусты, я полагаю, потому что холст ушел вместе с родительским окном...
Я попытался отключить привязку после уничтожения окна .dsm:
.dsm.nb.mdlbuild.canvas bind $tagtomove <Button-1> { }
и использовать команду «перерыв», но безуспешно.
.dsm.nb.mdlbuild.canvas bind $tagtomove <Button-1> break
Как удалить привязку при закрытии окна (.dsm), в котором находится холст, чтобы эта ошибка исчезла?