Ruby/Tkは詳しくないんだけど、こういうのはどう?

create_point = proc{}
by_mouse = proc{...}
by_entry = proc{...}

canvas.bind('FocusIn', proc{create_point = by_mouse})
entry.bind('FocusIn', proc{create_point = by_entry})

button(:command=>proc{create_point.call})