Updated 2005-02-07 16:38:42 by lwv

Not sure if this will fit the bill, but here's what I threw together using an array:
 package require Iwidgets

 proc getMenu {} {
  global members
  set _selected [.optionlist get]
  puts "user id is [lindex [array get members $_selected ] 1]"

  pack [iwidgets::optionmenu .optionlist -command getMenu]

  array set members {John 0 Jane 1 Jack 2 Janet 3}

 foreach user [array names members] {
  .optionlist insert end $user

RS wonders what the bill was, or who Tim is... LV noticed that this page links to one of the question pages, and so assumes that Tim must have asked a question back in December and fits the bill is an English expression meaning this should meet the requirements that you have stated.